Derby/JavaDB INSERT auf FOREIGN KEY schlägt fehl

  • Themenstarter Themenstarter Chefkoch90
  • Beginndatum Beginndatum
C

Chefkoch90

Gast
Hallo zusammen, ich möchte eine Art Lagerverwaltung in Java erstellen und möchte dazu eine Datenbank im Hintergrund laufen lassen.

Ich habe schon folgende Tabellen erstellt:
SQL:
CREATE TABLE LAGERVERWALTUNG.Teiltyp(
	TTID INTEGER PRIMARY KEY,
	Name VARCHAR(30) UNIQUE NOT NULL);

SQL:
CREATE TABLE LAGERVERWALTUNG.Teil(
	TID INTEGER PRIMARY KEY,
	Name VARCHAR(20) NOT NULL,
	Lieferzeit INTEGER NOT NULL,
	Platzbedarf INTEGER NOT NULL,
	Anzahl INTEGER,
	TTID INTEGER NOT NULL CONSTRAINT FK_Teiltyp REFERENCES Teiltyp(TTID));

Danach habe ich einen Teiltyp eingefügt, mit TTID = 1.

Wenn ich nun folgenden Befehl ausführe:
SQL:
INSERT INTO LAGERVERWALTUNG.TEIL(TID, NAME, LIEFERZEIT, PLATZBEDARF, ANZAHL, TTID)
values (1, 'Winter', 2, 1, 0, 1);

dann erscheint immer folgende Fehlermeldung:
INSERT on table 'TEIL' caused a violation of foreign key constraint 'FK_TEILTYP' for key (1). The statement has been rolled back.

Warum nimmt er denn den Wert 1 für den FK nicht an? Ich benutze Derby 10.2. Wäre euch sehr dankbar für die Hilfe.
 
Ich weiß nicht, wie Derby mit Schemas umgeht, aber versuch mal, den voll qualifizierten Namen von Teiltyp zu benutzen, und zwar hier:
[SQL=7]
TTID INTEGER NOT NULL CONSTRAINT FK_Teiltyp REFERENCES LAGERVERWALTUNG.Teiltyp(TTID));
[/code]
 
Ach na klar, ich bin doch ein Idiot, man übersieht manchmal die kleinsten Dinge. Ich musste natürlich Teiltyp aus dem richtigen Schema wählen im Constrain. Vielen Dank für den Tipp!
 

Zurück
Oben