MySQL 中添加外键失败error:1452

在尝试向具有外键约束的MySQL表中插入数据时遇到了1452错误。问题源于在子表emp中插入数据前,主表dept中没有对应主键的数据。通过先向主表dept插入数据,然后成功地向emp表中插入数据,解决了这个问题,理解了参照完整性的概念。以后在处理类似情况时需要注意主表是否有相应数据。
摘要由CSDN通过智能技术生成

我们首先开始创建2张表分别是 dept 表 和emp 表

创建 dept 表代码

CREATE TABLE dept(
            deptno INT(2) NOT NULL,
            dname VARCHAR(14),
            loc VARCHAR(13),
            CONSTRAINT pk_dept PRIMARY KEY(deptno)
)

创建 emp 表代码

CREATE TABLE emp(
            empno INT(4) NOT NULL PRIMARY KEY,
            ename VARCHAR(10),
            job VARCHAR(9),
            mgr INT(4),
            hiredate date,
            sal FLOAT(7,2),
            comm FLOAT(7,2),
            deptno INT(2),
            CONSTRAINT fk_deptno FOREIGN KEY(deptno) REFERENCES dept(deptno)
)

我们可以从代码中看出将 dept 表中的deptno作为主键,emp表中的deptno为其外键

第一张表创建起来没问题,畅通无阻

很顺利哈

好,这个时候我们运行第二张表的代码

OK 也没有问题,创建成功,好的,那接下来我们就只用插入数据了嘛,太简单了对吧

这个时候问题就来了

如果我先插入数据到子表emp中,来执行一下代码 

 INSERT INTO emp VALUES(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20);
INSERT INTO emp VALUES(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);
INSERT INTO emp VALUES(7521,'WARD

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值