SQL-Fehler: ORA-02291: integrity constraint
Erstelle ich eine Datenbank zugreifen möchte Werte von einem Fremdschlüssel. Ich habe zwei folgenden Tabellen
CREATE TABLE Component(
ComponentID varchar2(9) PRIMARY KEY
, TypeID varchar2(9) REFERENCES TypeComponent(TypeComponentID)
)
INSERT INTO Component VALUES(192359823,785404309)
INSERT INTO Component VALUES(192359347,785404574)
INSERT INTO Component VALUES(192359467,785404769)
INSERT INTO Component VALUES(192359845,785404867)
INSERT INTO Component VALUES(192359303,785404201)
INSERT INTO Component VALUES(192359942,785404675)
CREATE TABLE TypeComponent (
TypeComponentID varchar2(9) PRIMARY KEY
, Type_Description varchar2(30) CONSTRAINT Type_Description
CHECK(Type_Description IN('Strap', 'Buckle', 'Stud')) NOT NULL
)
INSERT INTO TypeComponent VALUES(785404309, 'Strap')
INSERT INTO TypeComponent VALUES(785404574, 'Stud')
INSERT INTO TypeComponent VALUES(785404769, 'Buckle')
INSERT INTO TypeComponent VALUES(785404867, 'Strap')
INSERT INTO TypeComponent VALUES(785404201, 'Buckle')
INSERT INTO TypeComponent VALUES(785404675, 'Stud')
Diese sind die zwei Tabellen. Component
und TypeComponent
. Component
ist die übergeordnete Entität zu TypeComponent
, und ich bin versucht, führen Sie die folgende Anweisung EINFÜGEN:
INSERT INTO Component VALUES(192359823,785404309)
aber es gibt mir die Fehlermeldung
Dies ist die session, die ich bisher in einem Oracle SQL-dev
- Kannst du bitte posten Sie Ihre gesamte Sitzung und formatieren Sie Ihre post ein wenig ?
- Wenn Sie die Eingabe von SQL-Anweisungen und Fehler-Protokolle, wählen Sie bitte die Anweisungen und klicken Sie auf Code (ie, icon mit
1010
so, dass es lesbar ist. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, in Ihrem
TypeComponent
Tabelle zuerst, dann fügen Sie diesen in IhreComponent
Tabelle.Laut der Fehlermeldung:
Dies bedeutet, dass es keinen passenden Schlüssel, die in Ihr referenzierten Tabelle.
EDIT #1
Für Ihre Art der Informationen, hier ist eine Website, wo Sie Hilfe bekommen kann, mit allen Oracle-Fehler-codes.
http://[ora-02291].ora-code.com/
Hier ist die homepage für die Website: http://www.ora-code.com/
Wo Sie kann, ersetzen Sie den Fehler-code in die URL entsprechend dem Fehler-code, die Sie bekommen, und Sie werden Zugriff auf die Seite für diesen Fehler.
Component
hängtTypeComponent
. Ich halte es eher wie eine Atomare Objekt. Es kann aus sich selbst heraus existieren. Auf der anderen SeiteComponent
kann nicht existieren, ohneTypeComponent
seit seinerTypeID
Feld verweist auf die primäre Taste desTypeComponent
Tabelle. Daher beim einsetzen inComponent
wird, überprüft Datenbankmodul für die Referenz gibst du es bist, der Wert derTypeComponent.TypeComponentID
, und da Sie es nicht finden können es, Sie lehnt das einfügen, sonst würden Sie haben eine Daten-Integrität betreffen.TypeComponent
Tabelle vor denComponent
, dass eine Zeile muss es inTypeComponent
einfügen um inComponent
.Bitte posten Sie Ihre gesamte SQLPLUS-Sitzung so, dass der Fehler leicht reproduzierbar ist.
Sieht aus wie das einfügen in die child-Tabelle wird getan, vor dem einfügen in die übergeordnete Tabelle, die diesen Fehler verursacht.
Ändern Sie die Reihenfolge der Einsätze und führen Sie erneut Ihren code ein.
In
component
Tabelle, die Sie habenUnd dann gehen Sie mit
Wenn Sie ausgeführt dies zuerst, dann wird Oracle werfen
Integrity constraint
Fehler, weil Sie versuchen, einfügen incomponent
Tabelle einen Wert, der nicht vorhanden ist inTypeComponent
Tabelle.Dies ist ein problem, denn Sie haben erwähnt, dass
TypeID
ist ein foreign key, dh, der Wert derTypeID
muss vorhanden sein, inTypeComponent
vor dem einsetzen inComponent
Dieser Fehler vorhanden ist einige Male mit dem referenzierten Schlüssel (foreign key in meinem Fall), diese haben Fehler. Bitte erstellen Sie die referenzierten Schlüssel in der Tabelle.