2 つのテーブルを作成し、次のことを行いました。
表1:(学生)
CREATE TABLE student(s int, n int, d int, PRIMARY KEY(s), FOREIGN KEY(d) REFERENCES dep(d));
表 2: (dep)
CREATE TABLE dep(d int, n int, PRIMARY KEY(d));
ですから、私の理解が正しければ、d はテーブル 1 の外部キーであり、部門の主キーを参照しています。したがって、 dep の主キーは、学生の d と一致する必要があります。ただし、次のことを行うと
INSERT INTO dep (1,2);
ステートメントはエラーなしで終了しましたか? 学生テーブルは空です。主キーが参照されている場合、どのようにデータを挿入できますか?
助けてください、ありがとう。
ちなみに、対応する値がない dep でも学生に自由に挿入できました。mysql と oracle のせいだと思いますか?
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)