您的二手房中介管理系统设计中,把表都创建好了怎么插入数据啊?就是向House表和Landlord表中插入数据会出错
插入数据出错
mysql> insert into Landlord Values(1,'张三','男',01,'2022-10-01 15:30:00');
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (二手房中介管理系统
.landlord
, CONSTRAINT landlord_ibfk_1
FOREIGN KEY (lan_id
) REFERENCES house
(hou_id
) ON DELETE RESTRICT ON UPDATE RESTRICT)
没有办法解决,尝试过把外键先删除再插入数据,最后再重新添加外键,可是又会出现这中错误
mysql> alter table House add foreign key(hou_id) references Landlord(lan_id);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (二手房中介管理系统
.#sql-f9e8_11
, CONSTRAINT house_ibfk_1
FOREIGN KEY (hou_id
) REFERENCES landlord
(lan_id
))
能添加数据
外键要求先要有值。内容为二手房中介那就举房子的例子:
假设房屋有六层,house 表按楼层设置外键,需要输入6条记录,1,2,3,4,5,6。Landlord 表使用该外键。
你的第一个错误可以类比Landlord 表插入一条记录,楼层为7或者-1,即违反外键约束。
解决方法,外键先要有值,house 表外键插入7或-1的记录,再在Landlord 表插入楼层为7或者-1的记录可以通过。
删除外键要删除情况:比如删除6,需要先删除Landlord 表内所有为6的记录,才可以删house 表的外键6。