我从此INSERT INTO ON DUPLICATE KEY UPDATE MySQL语句开始。
INSERT INTO Table1 ( field1, field2) VALUES (1, 2) ON DUPLICATE KEY UPDATE field1 = 1, field2 = 2
然后,我遇到一个错误“外键约束失败”。
我意识到我需要添加另一个WHERE子句条件来满足带有内部联接的外键约束。
我尝试过这样的事情;
INSERT INTO Table1 ( field1, field2) Inner Join Table2 ON Table2.id = Table1.field_id VALUES (1, 2) ON DUPLICATE KEY UPDATE field1 = 1, field2 = 2 WHERE Table2.addr='123456'
我收到语法错误。编写此MySQL语句的正确方法是什么?
由于遇到了外键约束,因此必须进行寻址才能使INSERT正常工作。
您的查询应类似于:
INSERT INTO Table1 ( field1, field2, foreign_key_id) Select (1, 2, foreign_key_id) where ... ON DUPLICATE KEY UPDATE field1 = 1, field2 = 2