karl-heinz Geschrieben 24. Februar 2010 Teilen Geschrieben 24. Februar 2010 (bearbeitet) DROP DATABASE Beispiel; CREATE DATABASE Beispiel; USE Beispiel; CREATE TABLE Dokument(D_ID [B]INT[/B] NOT NULL AUTO_INCREMENT PRIMARY KEY , Nickname VARCHAR(25) NOT NULL); CREATE TABLE Link (L_ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY , Nickname VARCHAR(25) NOT NULL, D_ID [B]INT[/B] NOT NULL); INSERT INTO Dokument (Nickname) VALUES ("Foo"), ("Bar"); INSERT INTO Link (Nickname, Link.D_ID) VALUES ("Foolink", [B]1[/B]); Naja der Datentyp von Primär- und zugehörigen Fremdschlüsseln muss gleich sein, weil du sonst bei jedem Suchvorgang, Vergleich etc. einen der Werte umwandeln müsstest. Daher erzwingt auch eine FOREIGN KEY CONSTRAINT, dass die Datentypen identisch sind. Also, wat macht ein AUTO_INCREMENT? Es erzeugt quasi automatisch einen Schlüsselwert der eindeutig ist. Sollte dir aber sofort auffallen, wenn du ein SELECT * FROM Dokument machst! Schließlich enthält dein INSERT auf Dokument keine Angabe zu D_ID! Aber diesen Wert brauchst du ja, wenn du dann einen INSERT auf Link machst der auf ein Dokument zeigen soll! Fehler mit dem Datentyp war also doch noch drin . Naja mach doch noch mal eine FOREIGN KEY CONSTRAINT dazu und entferne erstmal diese AUTO_INCREMENT-Geschichte, und dann kannste den Krams auf deine eigentliche Aufgabe münzen... Bearbeitet 24. Februar 2010 von karl-heinz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Will_Malecken Geschrieben 24. Februar 2010 Autor Teilen Geschrieben 24. Februar 2010 Ah okay das stimmt. Jetzt muss ich nur noch wissen wie so ein constrait geht. da google ich nochmal Das Auto_Increment bei Link kann ich einfach wegmachen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
karl-heinz Geschrieben 24. Februar 2010 Teilen Geschrieben 24. Februar 2010 Alle AUTO_INCREMENT entfernen! Die Fremdschlüssel-Beschränkung hattest du schon gepostet... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Will_Malecken Geschrieben 24. Februar 2010 Autor Teilen Geschrieben 24. Februar 2010 Achso die okay. Ist das okay wenn ich das morgen nachmittag poste? Schaff ich jetzt nicht mehr so schnell. Muss noch schlafen gehn und kann dann erst später nach der Schule morgen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.