【发布时间】:2017-09-02 12:21:56
【问题描述】:
我有 2 张表,一张用于员工,一张用于部门。一名员工只能在一个部门工作,但一个部门可以有多名员工。我在它们之间添加了一个外键约束,但是如果我尝试将具有相同数据的相同员工添加到同一部门,则查询将执行而不是失败。
create table Department(id int primary key auto_increment, name varchar(100));
create table Employee(id int primary key auto_increment,
department_id int not null,
name varchar(100),
foreign key (department_id) references department(id));
INSERT INTO Department(name) VALUES('China');
INSERT INTO Department(name) VALUES('England');
INSERT INTO Employee(department_id,name) VALUES (1,'Mark');
INSERT INTO Employee(department_id,name) VALUES (1,'Mark');
第二次插入 Employee 'Mark' 后,我期待一个错误,但查询总是执行。如何限制一名特定员工只能在一个部门工作?
【问题讨论】:
-
mysql 还是 sql-server?
-
MySQL,抱歉打错标签
-
为什么会出现错误?
-
小心!!如果您有 2 个同名员工会怎样?!?! 发生了
标签: mysql foreign-keys