MySQL-在表之间插入或更新行
表a: 身份证件 邮寄, 团队 [其他栏目] 表B: 身份证件 邮寄, 团队 [其他栏目] ID是两个表中的主键。我需要完成表B中的每一行,并且:MySQL-在表之间插入或更新行,mysql,Mysql,表a: 身份证件 邮寄, 团队 [其他栏目] 表B: 身份证件 邮寄, 团队 [其他栏目] ID是两个表中的主键。我需要完成表B中的每一行,并且: 如果表A中不存在ID,请使用列插入新行 ID、邮件、团队(仅限) 如果表A中确实存在ID,则使用mail的新值更新行(仅限) 表A中存在但表B行中不存在的ID应 不变 我有: INSERT INTO tablea (id,mail,team) (SELECT id,mail,team FROM tableb) ON DUPLICATE KEY upd
INSERT INTO tablea (id,mail,team) (SELECT id,mail,team FROM tableb)
ON DUPLICATE KEY update tablea SET tablea.mail=tableb.mail;
这不起作用-我想我需要一个连接来确保最后一个SET命令有效,但不确定这一部分,有人能帮忙吗
非常感谢如下所述:
您可以使用子句中的函数引用语句部分的列值。换句话说,在重复键更新时的中,子句指的是在没有发生重复键冲突的情况下插入的列名称的值。此函数在多行插入中特别有用
因此:
INSERT INTO tablea (id, mail, team)
SELECT id, mail, team FROM tableb
ON DUPLICATE KEY UPDATE mail = VALUES(mail)
一旦语法正确,如图所示,如果仍然不起作用,请检查以确保您在id、mail、team for tablea上有唯一的索引-否则,“在重复键上”部分将永远不会被触发。