我从 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 语句的正确写法是什么?
我不确定你到底想做什么。但是,你可以把任何select
声明中的insert . . . select
声明并仍然使用on duplicate key update
。例如:
insert into Table1(field1, field2)
select 1, 2
from table1 t1 join
table2 t2
on t2.id = t1.field_id
where t2.addr = '123456'
on duplicate key update field1 = 1, field2 = 2;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)