错误代码1452_MySQL错误1452-无法添加或更新子行:外键约束失败

我有个奇怪的问题。我试图向一个引用另一个表的表中添加一个外键,但由于某种原因它失败了。就我对MySQL的有限知识而言,唯一可能令人怀疑的是,在另一个表上有一个外键引用了我试图引用的那个外键。

我做了一个SHOW CREATE TABLE对两个表的查询,sourcecodes_tags是带有外键的表,sourcecodes是引用的表。CREATE TABLE `sourcecodes` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`user_id` int(11) unsigned NOT NULL,

`language_id` int(11) unsigned NOT NULL,

`category_id` int(11) unsigned NOT NULL,

`title` varchar(40) CHARACTER SET utf8 NOT NULL,

`description` text CHARACTER SET utf8 NOT NULL,

`views` int(11) unsigned NOT NULL,

`downloads` int(11) unsigned NOT NULL,

`time_posted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`),

KEY `user_id` (`user_id`),

KEY `language_id` (`language_id`),

KEY `category_id` (`category_id`),

CONSTRAINT `sourcecodes_ibfk_3` FOREIGN KEY (`language_id`) REFERENCES `languages` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT `sourcecodes_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,

CONSTRAINT `sourcecodes_ibfk_2` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)

ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1CREATE TABLE `sourcecodes_tags` (

`sourcecode_id` int(11) unsigned NOT NULL,

`tag_id` int(11) unsigned NOT NULL,

KEY `sourcecode_id` (`sourcecode_id`),

KEY `tag_id` (`tag_id`),

CONSTRAINT `sourcecodes_tags_ibfk_1` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`)

ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=latin1

这是生成错误的代码:ALTER TABLE sourcecodes_tags ADD FOREIGN KEY (sourcecode_id) REFERENCES sourcecodes (id) ON DELETE CASCADE ON UPDATE CASCADE

MySQL错误1452-无法添加或更新子行:外键约束失败

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值