但参考表和被参照表为同一个表时,该怎样插入数据

 我来答
时空沙漏cr
2017-05-02 · TA获得超过185个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:239万
展开全部
可以的, 下面是一个例子.

CREATE TABLE DEPT (
id INT PRIMARY KEY,
name varchar(10),
pid INT
) ENGINE=InnoDB ;

ALTER TABLE DEPT
ADD CONSTRAINT DEPT_cons
FOREIGN KEY (pid)
REFERENCES DEPT(id);

下面是插入数据的结果.

mysql> INSERT INTO DEPT VALUES(1, '总公司', NULL);
Query OK, 1 row affected (0.04 sec)

mysql> INSERT INTO DEPT VALUES(2, '分公司', 1);
Query OK, 1 row affected (0.11 sec)

mysql> INSERT INTO DEPT VALUES(3, '办事处', 2);
Query OK, 1 row affected (0.08 sec)

mysql>
mysql> INSERT INTO DEPT VALUES(4, '非法数据', 5);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`test`.`dept`,
CONSTRAINT `DEPT_cons` FOREIGN KEY (`pid`) REFERENCES `dept` (`id`))
mysql>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式