我正在尝试在表格上添加外键"菜单"并获得错误:
1452 - Cannot add or update a child row: a foreign key constraint fails (`#sql-c74_c5`, CONSTRAINT `#sql-c74_c5_ibfk_1` FOREIGN KEY (`restaurant_id`) REFERENCES `restaurants` (`restaurant_id`))
我的餐厅表格中有一列restaurant_id
,它是此表的主键。
菜单表有三列menu_id
,menu_name
和restaurant_id
。现在我跑的时候
ALTER TABLE `menu` ADD FOREIGN KEY ( `restaurant_id` ) REFERENCES `restaurants` (`restaurant_id`);
然后我收到错误#1452。
请帮助我:)
答案 0 :(得分:0)
听起来该列中已有的数据不符合外键要求,这意味着,在"菜单中的restaurant_id中有一个空值"表,或者您有一个餐厅restaurant_id中不存在的值。如果您希望仅在此时强制执行外键,则需要" nocheck"否则您需要使数据满足约束的要求。要添加nocheck外键,这就是您所需要的:
ALTER TABLE menu with NOCHECK
ADD CONSTRAINT [FK_menu_restaurants] FOREIGN KEY ([restaurant_id])
REFERENCES restaurants([restaurant_id])
我希望这会有所帮助。