创建外键时,phpmyadmin 中的外键约束失败

Posted

技术标签:

【中文标题】创建外键时,phpmyadmin 中的外键约束失败【英文标题】:Foreign key constraint fails in phpmyadmin while creating foreign key 【发布时间】:2017-03-11 00:30:56 【问题描述】:

我正在创建外键但不断出错

1452 - 无法添加或更新子行:外键约束失败(demo_db.#sql-271c_ac, CONSTRAINT company_state_id FOREIGN

键 (company_state_id) 引用 company (Id))

SQL 查询是

 ALTER TABLE `state` ADD CONSTRAINT `company_state_id` FOREIGN KEY (`company_state_id`) REFERENCES `company`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT;

【问题讨论】:

你的表中有数据,破坏了外键约束 你必须清除表中的所有数据,你可以添加约束 任何其他想法,因为我的表中有超过 100 条记录。 我做了什么。首先,我在表中添加了所有记录,然后我又添加了一列作为外键。 【参考方案1】:

只需这样做:

SET FOREIGN_KEY_CHECKS=0;
ALTER TABLE `state` ADD CONSTRAINT `company_state_id` FOREIGN KEY (`company_state_id`) REFERENCES `company`(`Id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
SET FOREIGN_KEY_CHECKS=1;

这将首先忽略所有外键检查,更改您的表并再次将检查恢复为 1

希望这会有所帮助:)

【讨论】:

以上是关于创建外键时,phpmyadmin 中的外键约束失败的主要内容,如果未能解决你的问题,请参考以下文章

oracle为表建立外键时没有命名FOREIGN KEY约束,现在想删外键怎么办??

如何使用 phpMyAdmin 添加指向同一个表的外键?

Laravel-7 迁移中的外键约束形成错误

在 phpMyAdmin 中消失的外键

mysql的常见的外键约束

Mysql外键约束设置使用方法