ich zwei Tabellen erstellt und hat die folgenden:Wie komme ich Werte frei mit Fremdschlüssel eingeben
Tabelle 1: (Studenten)
CREATE TABLE student(s int, n int, d int, PRIMARY KEY(s), FOREIGN KEY(d) REFERENCES dep(d));
Tabelle 2: (dep)
CREATE TABLE dep(d int, n int, PRIMARY KEY(d));
Also, wenn ich richtig verstehe, ist d ein Fremdschlüssel der Tabelle 1 und es verweist auf den Primärschlüssel der Abteilung. Daher muss der Primärschlüssel von dep mit dem d in Studenten übereinstimmen. Allerdings, wenn ich die folgende
INSERT INTO dep (1,2);
Die Anweisung ohne Fehler beendet? Die Schüler-Tabelle ist leer. Wie können die Daten eingefügt werden, wenn auf ihren Primärschlüssel verwiesen wird?
Bitte helfen Sie, danke.
Übrigens konnte ich in den Studenten frei einfügen sogar dep hat keinen entsprechenden Wert. Glaubst du, es liegt an Mysql vs. Orakel?
mysql> select * from student;
+---+------+------+
| s | n | d |
+---+------+------+
| 5 | 5 | 5 |
+---+------+------+
1 row in set (0.00 sec)
mysql> select * from dep;
+---+------+
| d | n |
+---+------+
| 1 | 2 |
+---+------+
1 row in set (0.00 sec)
gut ich in der Lage war Zufallszahl an Studenten frei einzufügen, denken Sie, ist es, weil es SQL anders als Orable ist? – eastboundr
Es hat nichts mit SQL oder Oracle zu tun. Wie konnten Sie in den Schülertisch einfügen? War es vor oder nach dem Erstellen der Fremdschlüsseleinschränkung? Sind Sie sicher, dass der Zufallswert für student.d nicht in der Dep-Tabelle ist? – rikitikitik