有外键约束的时候我们应该怎么样写入数据呢

有外键约束的时候我们应该怎么样写入数据呢,第1张

有外键约束情况下,对表进行 *** 作会报错:

如:

Cannot add or update a child row: a foreign key constraint fails (`dsp`.`dsp_rpt_olap_resource_info_daily`, CONSTRAINT `dsp_rpt_olap_resource_info_daily_ibfk_1` FOREIGN KEY (`partner_code`) REFERENCES `dsp_rpt_olap_partner_info_daily` (`partner_code`))

1、对于删除 *** 作:

则需要先删除子表的数据,然后对父表进行删除 *** 作,否则会报错。

2、对于插入数据 *** 作:

网上找了很多方式,觉得这个比较方便点:

关闭外键检查 SET FOREIGN_KEY_CHECKS = 0

插入数据后,

再开启外键检查 SET FOREIGN_KEY_CHECKS = 1

外键主要是为了保持数据的完整性,具体后面再写一写外键的应用。

有外键的情况应该先添加主表数据,再添加副表数据。

如:有以下两张表

班级表:

CLASSID  NAME

1               一班

2               二班

学生表:

SID     NAME    CLASSID

1          张三           1

2          李四           1

3          王五           2

其中学生表中的CLASSID是班级表CLASSID的外键。

现在要求在学生表中添加一条SID=4,NAME=赵六,CLASSID=3的数据,那么只能先在班级表中加入一条新数据。

insert into 班级表 values (3,'三班')

然后再在学生表中添加:

insert into 学生表 values (4,'赵六',3)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11955592.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存