mysql 错误代码1217 MYSQL外键约束检查失败,删除或修改主表记录失败 怎么解决啊

mysql 错误代码1217 MYSQL外键约束检查失败,删除或修改主表记录失败 怎么解决啊,第1张

这是一项新功能,用于指定在插入或更新到一行之前检查值的条件。如果表的任何行的搜索条件的结果为 FALSE,则约束可能返回错误(但如果结果为 UNKNOWN 或 TRUE,则约束不会返回错误)。此功能开始在 MySQL 8.0.16 上运行,在以前的版本中,我们可以创建它,但它不起作用,这意味着支持语法,但不起作用。要牢记的使用规则:

AUTO_INCREMENT 自增列不允许使用

引用另一个表中的另一列不允许使用

存储的函数和用户定义的函数不允许使用

存储过程和函数参数不允许使用

子查询不允许使用

在外键中用于后续 *** 作(ON UPDATE,ON DELETE)的列不允许使用

为下一条语句 INSERT,UPDATE,REPLACE,LOAD DATA 和 LOAD XML 评估此次监测。此外,还会为 INSERT IGNORE,UPDATE IGNORE,LOAD DATA…IGNORE 和 LOAD XML…IGNORE 评估此监测约束。对于这些语句,如果约束的评估结果为 FALSE,则会发生警告。插入或更新被跳过。

我们可以使用此功能在表中添加更多的逻辑,但是根据我以前作为程序员的经验,我不建议在表中添加逻辑,因为除非您无法访问应用程序代码,否则很难找到或调试错误。

MYSQL出错代码及出错信息对照

1005:创建表失败

1006:创建数据库失败

1007:数据库已存在,创建数据库失败

1008:数据库不存在,删除数据库失败

1009:不能删除数据库文件导致删除数据库失败

1010:不能删除数据目录导致删除数据库失败

1011:删除数据库文件失败

1012:不能读取系统表中的记录

1020:记录已被其他用户修改

1021:硬盘剩余空间不足,请加大硬盘可用空间

1022:关键字重复,更改记录失败

1023:关闭时发生错误

1024:读文件错误

1025:更改名字时发生错误

1026:写文件错误

1032:记录不存在

1036:数据表是只读的,不能对它进行修改

1037:系统内存不足,请重启数据库或重启服务器

1038:用于排序的内存不足,请增大排序缓冲区

1040:已到达数据库的最大连接数,请加大数据库可用连接数

1041:系统内存不足

1042:无效的主机名

1043:无效连接

1044:当前用户没有访问数据库的权限

1045:不能连接数据库,用户名或密码错误

1048:字段不能为空

1049:数据库不存在

1050:数据表已存在

1051:数据表不存在

1054:字段不存在

1062:字段值重复,入库失败

1065:无效的SQL语句,SQL语句为空

1081:不能建立Socket连接

1114:数据表已满,不能容纳任何记录

1116:打开的数据表太多

1129:数据库出现异常,请重启数据库

1130:连接数据库失败,没有连接数据库的权限

1133:数据库用户不存在

1141:当前用户无权访问数据库

1142:当前用户无权访问数据表

1143:当前用户无权访问数据表中的字段

1146:数据表不存在

1147:未定义用户对数据表的访问权限

1149:SQL语句语法错误

1158:网络错误,出现读错误,请检查网络连接状况

1159:网络错误,读超时,请检查网络连接状况

1160:网络错误,出现写错误,请检查网络连接状况

1161:网络错误,写超时,请检查网络连接状况

1169:字段值重复,更新记录失败

1177:打开数据表失败

1180:提交事务失败

1181:回滚事务失败

1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库

1205:加锁超时

1211:当前用户没有创建用户的权限

1216:外键约束检查失败,更新子表记录失败

1217:外键约束检查失败,删除或修改主表记录失败

1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器

1227:权限不足,您无权进行此 *** 作

1235:MySQL版本过低,不具有本功能

1250:客户端不支持服务器要求的认证协议,请考虑升级客户端。

1005:创建表失败

1006:创建数据库失败

1007:数据库已存在,创建数据库失败

1008:数据库不存在,删除数据库失败

1009:不能删除数据库文件导致删除数据库失败

1010:不能删除数据目录导致删除数据库失败

1011:删除数据库文件失败

1012:不能读取系统表中的记录

1020:记录已被其他用户修改

1021:硬盘剩余空间不足,请加大硬盘可用空间

1022:关键字重复,更改记录失败

1023:关闭时发生错误

1024:读文件错误

1025:更改名字时发生错误

1026:写文件错误

1032:记录不存在

1036:数据表是只读的,不能对它进行修改

1037:系统内存不足,请重启数据库或重启服务器

1038:用于排序的内存不足,请增大排序缓冲区

1040:已到达数据库的最大连接数,请加大数据库可用连接数

1041:系统内存不足

1042:无效的主机名

1043:无效连接

1044:当前用户没有访问数据库的权限

1045:不能连接数据库,用户名或密码错误

1048:字段不能为空

1049:数据库不存在

1050:数据表已存在

1051:数据表不存在

1054:字段不存在

1065:无效的SQL语句,SQL语句为空

1081:不能建立Socket连接

1114:数据表已满,不能容纳任何记录

1116:打开的数据表太多

1129:数据库出现异常,请重启数据库

1130:连接数据库失败,没有连接数据库的权限

1133:数据库用户不存在

1141:当前用户无权访问数据库

1142:当前用户无权访问数据表

1143:当前用户无权访问数据表中的字段

1146:数据表不存在

1147:未定义用户对数据表的访问权限

1149:SQL语句语法错误

1158:网络错误,出现读错误,请检查网络连接状况

1159:网络错误,读超时,请检查网络连接状况

1160:网络错误,出现写错误,请检查网络连接状况

1161:网络错误,写超时,请检查网络连接状况

1062:字段值重复,入库失败

1169:字段值重复,更新记录失败

1177:打开数据表失败

1180:提交事务失败

1181:回滚事务失败

1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库

1205:加锁超时

1211:当前用户没有创建用户的权限

1216:外键约束检查失败,更新子表记录失败

1217:外键约束检查失败,删除或修改主表记录失败

1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器

1227:权限不足,您无权进行此 *** 作

1235:MySQL版本过低,不具有本功能

1016错误:文件无法打开,使用后台修复或者使用phpmyadmin进行修复。

1044错误:数据库用户权限不足,请联系空间商解决

1045错误:数据库服务器/数据库用户名/数据库名/数据库密码错误,请联系空间商检查帐户。

1054错误:程序文件跟数据库有冲突,请使用正确的程序文件上传上去覆盖。

1146错误:数据表缺失,请恢复备份数据.

2002错误:服务器端口不对,请咨询空间商正确的端口。

2003错误:mysql服务没有启动,请启动该服务

Cannot add or update a child row,表之间互相引用外键造成“死锁”。Cannot add or update a child row,Cannot delete or update a parent row:先建两张表:user和card,为了简单,都只有一个字段:id,让他们彼此成为对方的外键:mysql>create table user(id int primary key) character set utf8mysql>create table card(id int primary key, constraint fk_user_id foreign key (id) references user(id))character set utf8mysql>alter table user add constraint fk_card_id foreign key(id) references card(id)此时,任何一张表都无法插入数据,也不能删除表。mysql>drop table userERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails解决方法还是要删除外键约束,先通过:show create table user找到外键约束的名字,再把约束删除:mysql>alter table user drop foreign key fk_card_id此时就可以向user插入数据了,card表也就可以删除了。这个例子比较无聊,只是列出来,希望对遇到此问题的朋友有帮助。


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

原文地址: http://outofmemory.cn/zaji/7180799.html

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

发表评论

登录后才能评论

评论列表(0条)

保存