插入和更新SQL表

时间:2014-08-01 08:10:23

标签: mysql sql

如何在具有外键的表中插入数据? 我试过这个

INSERT INTO City (name, country, population) VALUES ("NewZelans", "Auckland", "80000");

然而它给了我一个错误

#1452 - Cannot add or update a child row: a foreign key constraint fails (stu_nall596_compsci_280_c_s2_2014.city, CONSTRAINT city_ibfk_2 FOREIGN KEY (country) REFERENCES Country (id))

并且在更新字段方面,如何做到这一点?

1 个答案:

答案 0 :(得分:2)

忽略" NewZelans"不是一个城市,而且"奥克兰"是一个城市而不是一个国家/地区,如果您希望您的插入成功,则需要在Country中插入一行id "Auckland",然后约束将允许您在该City表中为该国家/地区的城市插入新行。

我不知道你的架构是什么样的,但这是一个粗略的例子;

INSERT INTO Country (id, name) VALUES (123, 'New Zealand');

INSERT INTO City (name, country, population) VALUES ('Auckland', 123, 80000);

请参阅id表格中123的{​​{1}}必须先存在Country表中,然后才能在City表中引用它。