我是 MySql 的菜鸟。我想创建以下自引用表:
EMPLOYEE
+-----+------+------+
|Name |E-ID |M-ID |
+-----+------+------+
|ABC |12345 |67890 |
|DEF |67890 |12345 |
+-----+------+------+
我使用以下命令:
CREATE TABLE EMPLOYEE (
NAME VARCHAR(20) ,
E-ID CHAR(6) NOT NULL ,
M-ID CHAR(6) NULL ,
PRIMARY KEY (E-ID) ,
FOREIGN KEY (M-ID) REFERENCES EMPLOYEE(E-ID)
);
现在我的问题是,如何输入这两条记录?我的意思是,每次外来约束都会失败。我尝试输入:
INSERT INTO EMPLOYEE VALUES('12345','67890');
我也试过:
INSERT INTO EMPLOYEE VALUES('12345','67890'),('67890','12345');
以上两个命令都失败了。给出错误:
错误 1452 (23000):无法添加或更新子行:外键约束失败 BLAH BLAH
伙计们,实际上我正在尝试实现以下 ppt 的第 25 张幻灯片中给出的表格:关系数据模型和关系数据库约束
约束是:
- EMPLOYEE 的 SUPERSSN 引用 EMPLOYEE 的 SSN。
- DEPARTMENT 的 MRSSN 引用 EMPLOYEE 的 SSN。
- EMPLOYEEE 的 DNO 引用 DEPARTMENT 的 DNumber。
创建表后,如何添加记录?它总是会失败外键约束。