ORA-02291:INTEGRITY CONSTRAINT (SYSTEM.SYS_C007150) VERLETZT - ÜBERGEORDNETER SCHLÜSSEL NICHT GEFUNDEN
Wenn ich die Tabelle erstellen EMPLOYEE
machte ich ESSN
als Primärschlüssel und die SUPERSSN
ein Fremdschlüssel aus der gleichen Tabelle mit DNO
als Fremdschlüssel aus der dep-Tabelle, wenn ich Sie einfügen möchten Werte zeigen, und jetzt bin ich verwirrt.
Die Tabelle enthält die folgenden:
Name Null? Type
----------------------------------------- -------- --------------
ENAME NOT NULL VARCHAR2(30)
ESSN NOT NULL CHAR(14)
BDATE DATE
DNO NUMBER(38)
SUPERSSN CHAR(14)
in der ersten Zeit, die ich verwendet die folgende Befehlszeile ein:
INSERT INTO EMPLOYEE ('JOSEPH','789456','14-DEC-1986','3','123');
dann versuche ich, ohne DNO
:
SQL> INSERT INTO EMPLOYEE (ENAME,ESSN,BDATE)
2 VALUES('JOSEPH','9861050560','14-DEC-1986');
-------------------------------
INSERT INTO EMPLOYEE (ENAME,ESSN,BDATE)
*
ERROR at line 1:
ORA-02291: integrity constraint (SYSTEM.SYS_C007150) violated - parent key not
found
----------------------------
InformationsquelleAutor joseph hassan | 2014-04-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich parent_key Platte
SUPERSSN
(vorausgesetzt) werden muss, fehlt in der übergeordneten Tabelle. Finden Sie das heraus, indemSo müssen Sie zuerst legen Sie die Werte in der übergeordneten Tabelle Mitarbeiter-Tabelle und legen Sie dann die Werte in der untergeordneten Tabelle.
Herausfinden parent_table tun, als
Für mehr details bitte haben Sie einen Blick auf diese.
Gehen und durch diese und diese als gut.
CONSTRAINT_SOURCE ------------------------------- REFERENCES_COLUMN ---------------------------- SYS_C007149 (MITARBEITER.SUPERSSN) REFERENCES (MITARBEITER.ESSN) SYS_C007150 (MITARBEITER.DNO) REFERENCES (DEP.DNUMBER) CONSTRAINT_SOURCE ----------------------- REFERENCES_COLUMN ------------------------- SQL - > desc dep; SQL> insert into dep-2-Werte ("hr','1','12345','10/4/2000'); insert into dep * FEHLER in Zeile 1: ORA-02291: integrity constraint (SYSTEM.SYS_C007151) verletzt - übergeordneter Schlüssel nicht gefunden
Sie sollten die Abfrage der constraint-Namen, die geworfen wird, mit dieser Einfügung in die dep-Tabelle. Speziell, wie dieses: SELECT * FROM all_cons_columns acc WO acc.constraint_name = 'SYS_C007151'; Dies sollte etwas Licht auf, was getan werden muss.
Natürlich können Sie diese, indem Sie die "Einschränkungen" - tab nach dem öffnen einer Tabelle in SQL-Developer, aber ich mag die Ergebnisse Ihrer Abfrage zeigt besser @user75ponic, wie Sie beseitigen eine Menge von den zusätzlichen details.
InformationsquelleAutor Jåcob
Ich denke, dass der neue Eintrag(mit foreign key-Einschränkung), die Sie eingeben, auf eine Eingabe vor, die nicht vorhanden sind
InformationsquelleAutor Ausaf
Hier ist eine Abfrage, die Sie verwenden können, um zu überprüfen, ob die Werte im Fremdschlüssel der Tabelle vorhanden ist oder nicht, und natürlich, wenn Sie nicht existieren, dann müssten Sie eingesetzt werden zur Behebung der übergeordneten Schlüssel-Verletzung:
Natürlich ist vorausgesetzt, das problem mit der SUPERSSN-Taste. Wenn Sie andere foreign keys, dann haben Sie möglicherweise, um zu überprüfen, diejenigen, die als gut.
InformationsquelleAutor user8128167