我有两张桌子:
Column 1 | Column 2 | Column 3
---------------------------------
1 | a | 10
| |
3 | g | 30
| |
5 | f | 50
| |
7 | f | 70
Column 1 | Column 2 | Column 3
---------------------------------
10 | bb | 30
50 | cc | 40
现在,我需要将行从table 2
复制到table 1
。
问题是:
如果column 3
中已存在table 1
中的任何条目。 Column 3
,然后来自column 1
的{{1}}和column 2
使用来自table 1
的数据进行更新。不存在的行只是添加在表的末尾。
答案 0 :(得分:2)
在column1
和column2
上的表1中创建唯一索引:
create unique index table1_column1_column2 on table1(column1, column2);
然后使用insert on duplicate key update
:
insert into table1(column1, column2, column3)
select column1, column2, column3
from table2
on duplicate key update column3 = table2.column3;
答案 1 :(得分:0)
要更新Column1
和Column2
,如果Column3
的记录存在,则添加新记录,请使用:
CREATE UNIQUE INDEX Table1Column3 on Table1(Column3);
INSERT INTO Table1(Column1, Column2, Column3)
SELECT Column1, Column2, Column3
FROM Table2
ON DUPLICATE KEY UPDATE Column1 = Table2.Column1, Column2 = Table2.Column2