在 phpMyAdmin 中,当我尝试添加外键时发生了一些错误,并且没有说明问题所在。只是说“FK 失败”。
谁能告诉我问题出在哪里?
Error
SQL query:
ALTER TABLE `hotel` ADD FOREIGN KEY ( `type_id` ) REFERENCES `hotel`.`hotel_type` (
`id`
) ON DELETE CASCADE ON UPDATE CASCADE ;
MySQL said: Documentation
#1452 - Cannot add or update a child row: a foreign key constraint fails (`hotel`.`#sql-cfc_e`, CONSTRAINT `#sql-cfc_e_ibfk_2` FOREIGN KEY (`type_id`) REFERENCES `hotel_type` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
最佳答案
确保两个表的列具有相同的数据类型:
hotel.hotel type_id int(11) unsigned # type_id column of hotel table
hotel.hotel_type id int(11) unsigned # id column of hotel_type table
如果它们不是同一类型,那么您将无法添加 FK 约束。
-- 编辑--
根据您的回复,这些列是相同的数据类型,因此这意味着您在 hotels.type_id
列中有一个无效值(值在 hotel_types 中不存在
表)。检查您的 hotels.type_id
列中的值并确保它们存在于您的 hotel_types.id
列中。
关于mysql - 无法在 InnoDB 中添加外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8627482/