SQL merge 学习
merge 自己理解
判断两个表的字段关系
相同的更新
前表里面没有 后表有 添加
还可以加入 如果后表有前表没有 可以删除前表有的
SQL
CREATE TABLE a (keycol INT PRIMARY KEY, col1 INT NOT NULL, col2 INT NOT NULL, col3 INT NOT NULL); CREATE TABLE b (keycol INT PRIMARY KEY, col1 INT NOT NULL, col2 INT NOT NULL, col3 INT NOT NULL); INSERT INTO a VALUES (1,0,0,0),(2,0,0,0); INSERT INTO b VALUES (1,1,1,1),(3,3,3,3); INSERT INTO a VALUES (3,0,0,0),(4,0,0,0); INSERT INTO b VALUES (4,1,1,1),(5,3,3,3);
执行
merge a using b on a.[keycol]=b.[keycol] when matched then update set a.col1=b.col1,a.col2=b.col2,a.col3=b.col3 when not matched then insert ([keycol],col1,col2,col3) values (b.[keycol],b.col1,b.col2,b.col3) ;