我有两个表,具有相同的架构-
create table test1 ( a INT NOT NULL , b INT NOT NULL , c INT, PRIMARY KEY (a,b) ); create table test2 ( a INT NOT NULL , b INT NOT NULL , c INT, PRIMARY KEY (a,b) );
我想将test2表中的值插入到test1中,但是如果具有相同主键的行已经存在,请对其进行更新。我知道在mysql中,您可以使用ON DUPLICATE KEY UPDATE做类似的事情-
INSERT INTO test1 VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=3;
但是我不知道如何使用另一个表中的SELECT来执行上述查询。我正在寻找的是表格查询-
INSERT INTO test2 SELECT a, b, c FROM test1 ON DUPLICATE KEY UPDATE c = c + t.c (Select a, b, c from tests1)t;
该查询显然是无效的。如果有人可以从中提出有效的查询,我将不胜感激。
这应该为您工作:
INSERT INTO test2 SELECT a, b, c as c1 FROM test1 ON DUPLICATE KEY UPDATE c = c + c1