我创建了两个表并执行了以下操作:
表一:(学生)
CREATE TABLE student(s int, n int, d int, PRIMARY KEY(s), FOREIGN KEY(d) REFERENCES dep(d));
表 2:(深度)
CREATE TABLE dep(d int, n int, PRIMARY KEY(d));
所以,如果我理解正确,d 是表 1 的外键,它引用了部门的主键。因此,dep 的主键必须与学生中的 d 相匹配。但是,当我执行以下操作时
INSERT INTO dep (1,2);
语句完成没有错误?学生表是空的,引用其主键时如何插入数据?
请帮忙,谢谢。
顺便说一句,即使 dep 没有相应的值,我也可以自由地插入到学生中。你们认为这是因为 mysql vs. 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)