已解决在向有外键表插入数据提示“foreign key constraint fails”
今天在做作业的时候,在建立了几个主表,一个有外键的表
USE SPJ;
CREATE TABLE S (SNO CHAR(4) NOT NULL,SNAME CHAR(20) NOT NULL,STATUS CHAR(10),CITY CHAR(20),PRIMARY KEY (SNO));
CREATE TABLE P (PNO CHAR(4) NOT NULL,PNAME CHAR(20) NOT NULL,COLOR CHAR(8), WEIGHT SMALLINT,PRIMARY KEY(PNO));
CREATE TABLE J (JNO CHAR(4) NOT NULL,JNAME CHAR(20),CITY CHAR(20),PRIMARY KEY(JNO));
CREATE TABLE SPJ (SNO CHAR(4) NOT NULL,PNO CHAR(4) NOT NULL,JNO CHAR(4) NOT NULL,QTY SMALLINT,PRIMARY KEY (SNO,PNO,JNO),CONSTRAINT `spj_ibfk_1` FOREIGN KEY (SNO) REFERENCES S(SNO) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `spj_ibfk_2` FOREIGN KEY (PNO) REFERENCES P(PNO) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `spj_ibfk_3` FOREIGN KEY (JNO) REFERENCES J(JNO) ON DELETE CASCADE ON UPDATE CASCADE);
生成了这几个表之后,在向SPJ表添加数据的时候就报错了,提示
“1452:INSERT INTO spj
.spj
(SNO
, PNO
, JNO
, QTY
) VALUES (‘S1’, ‘P2’, ‘J2’, ‘100’) 1452: Cannot add or update a child row: a foreign key constraint fails (spj
.spj
, CONSTRAINT spj_ibfk_1
FOREIGN KEY (SNO
) REFERENCES s
(SNO
)) ”
查了很多的资料都未果
但是当找到了这里:https://stackoverflow.com/questions/12966626/mysql-cannot-add-or-update-a-child-row-a-foreign-key-constraint-fails
里面的方法解决了这个问题
在INSERT代码段前面添加
SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SET NAMES utf8;
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;
在代码段最后添加
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
SET SQL_NOTES=@OLD_SQL_NOTES;
这样在执行insert操作就可以完美完成这个操作的任务
已解决在向有外键表插入数据提示“foreign key constraint fails”相关推荐
- mysql添加数据不阻塞_主键表插入数据不提交,外键表插入数据被阻塞
有客户和我说:他在含主外键的表中实验发现,在主表数据未提交,然后在外键表插入该数据数据时,出现外键表hang住现象.我开始以为是不同的会话,根据oracle数据库的一致性原则,应该新会话在外键表中不能 ...
- 添加外键报错`Cannot add foreign key constraint`的解决方法
报错原因一般可能是如下情况 两张表里要设主键和外键的字段的数据类型或者数据长度不一样(例如这个是int,另外一个是bigint,或者都是int,但是设置的长度不同)原谅我就是忘记了这个才总是出错 其中 ...
- mysql添加外键约束失败cannot add foreign key constraint
一般来说出现此种错误的要注意是否有如下情况发生: 1.外键字段不能为该表的主键 2.外键字段参考字段必须为参考表的主键 3.字段数据类型必须一致 4.数据库表引擎必须一致 5.字符集和排序规则必须一致 ...
- 关于mysql数据库的外键插入报错:Cannot add or update a child row: a foreign key constraint fails,完整性问题
关于mysql的外键插入报错:Cannot add or update a child row: a foreign key constraint fails..... 首先确定sql语句的正确 然后 ...
- mysql a foreign key constraint fails_外键记录有存在,插入数据却报错a foreign key constraint fails...
今天在MySQL的一张表里插记录时,出现一个错误提示: Cannot add or update a child row: a foreign key constraint fails (`jeesn ...
- mysql删除有外链索引数据,Cannot delete or update a parent row: a foreign key constraint fails 问题的解决办法
mysql删除有外链索引数据,Cannot delete or update a parent row: a foreign key constraint fails 问题的解决办法 参考文章: (1 ...
- 解决Cannot delete or update a parent row: a foreign key constraint fails的mysql报错
1 问题 删除有外键关联的数据或者表的时候,mysql出现报错: Cannot delete or update a parent row: a foreign key constraint fail ...
- 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理
有两张表,结构如下: t_item: t_bid: id int id int name varchar name varchar item_id int 其中表t_item的主键id是表t_bid的 ...
- MySQL删除表:Cannot delete or update a parent row: a foreign key constraint fails。
MySQL库中有俩表,table1和table2,相互关联,在删除表的时候出错: Cannot delete or update a parent row: a foreign key constra ...
最新文章
- 百度拿不到Big Data资源,7h删抓紧时间!!
- 青岛大学计算机专硕和学硕,【2020】【青岛大学】【学硕646】复习经验
- LeetCode Swap Nodes in Pairs
- npm出错的解决方案
- 源码安装 odoo12 -- 问题记录
- Boost:宏BOOST_TEST_GT的使用实例
- 启动万维网发布服务(W3SVC)
- 随机数是真是假你说了算???
- bartlett方差齐性检验_方差齐性检验
- sqlserver 插入数据时异常,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXXXX.dbo.XXXXXXXXX'中的标识列指定显式值。...
- python 全局变量_python程序中用类变量代替global 定义全局变量
- python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数
- 动态路由之OSPF(开放式最短路径优先协议)
- python mssql get image bin_python实现mssql里点数据集到AutoCAD的文本转换
- 从Trie树(字典树)谈到后缀树(10.28修订)
- 一个关于static块的编译面试题
- 餐饮企业转型为大数据公司
- 进程同步/异步的区别
- Linux | 文件类型说明
- 自己做项目时整理的上传Excel表格
热门文章
- 微信和QQ内置浏览器停止访问该网页,微信域名被屏蔽的解决方案
- Pytorch警告UserWarning: Loky-backed parallel loops cannot be called in a multiprocessing
- 工作中那些让人印象深刻的BUG(3)
- WebStorm下载及破解
- Method threw ‘feign.codec.DecodeException‘ exception.
- 哪吒之魔童降世视听语言影评_《哪吒之魔童降世》观后感——不用吹爆,但值得点赞...
- CNN神经网络猫狗分类经典案例,深度学习过程中间层激活特征图可视化
- [艾兰岛]编辑器做传送门——kura酱长期更新
- 图片太大,导致页面加载过慢的处理方法
- 完结撒花!吴恩达DeepLearning.ai《深度学习》课程笔记目录总集