24. Februar 201015 j 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 201015 j von karl-heinz
24. Februar 201015 j 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?
24. Februar 201015 j Alle AUTO_INCREMENT entfernen! Die Fremdschlüssel-Beschränkung hattest du schon gepostet...
24. Februar 201015 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.