mysql 级联同步不成功_mysql – 外键设置为级联但无法更新 – 为什么?

正如其他地方所提到的,我对SQL和数据库都很陌生.此刻让我的手脏了,尝试所有不同的可能性.

我有一台运行MySQL的服务器并设置下表进行​​测试:

Field Type Collation Attributes Null Default Extra

id mediumint(8) UNSIGNED No None AUTO_INCREMENT

domain varchar(255) utf8_unicode_ci No None

status enum('...') utf8_unicode_ci No None

replaced_by mediumint(8) UNSIGNED Yes NULL

我们的想法是拥有一个对电子邮件有效的域名列表,例如“gmail.com”和“hotmail.com”.

现在,如果某个域被识别为与另一个域重复(例如“googlemail.com”到“gmail.com”),则状态列会指示此状态,并且“replacement_by”列会将ID提供给要使用的主域.

此外,如果域被识别为无效(例如“gymail.com”而不是“gmail.com”),则数据库可以存储此信息,并且通过状态并且通过脚本替换_可以建议正确的域.

虽然ID是此表的主键,但我想使用ON DELETE RESTRICT和ON UPDATE CASCASE在replacement_by列上测试外键.以便replacement_by列与主ID保持同步.

但不知何故,当我尝试更新数据时,我收到以下错误.为什么?

#1451 - Cannot delete or update a parent row: a foreign key constraint fails (`test`.`domains`, CONSTRAINT `domains_ibfk_1` FOREIGN KEY (`replace

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值