mysql将数据从表复制到表2,没有重复数据并添加新行

时间:2018-05-25 11:05:38

标签: mysql sql-update mysql-workbench

我有两张桌子:

table1 - IP,SN,版本,日期,工作

table2 - IP,SN,Vesrion

我想向table2添加仅来自table1的表中没有的IP。并根据table1更新SN +版本(只是我添加的新行)

我在这里找到了如何根据另一个表中的IP进行更新 但是我没有找到如何添加它而没有重复。

这就是我想要做的事情:

table 1 
IP
10.0.0.5
10.0.0.6
10.0.0.7

table2 
IP 
10.0.0.5
192.168.30.11
1.1.1.1

所以在函数结束时table1不会改变 和table2将是:

IP
10.0.0.5
192.168.30.11
1.1.1.1
10.0.0.6
10.0.0.7

感谢。

2 个答案:

答案 0 :(得分:0)

以下是两个单独的查询来完成这项工作。

  1. 在表2中添加不存在的记录

    INSERT INTO table2 (SELECT IP, SN, Vesrion FROM table1 where table1.IPnot in (select IPfrom table2));
    
  2. 更新现有数据

    UPDATE TABLE table2 INNER JOIN table1 ON table2.IP = table1.IP SET table2.SN = table1.SN, table2.vesion = table1.version WHERE table1.version <> table2.version OR table2.SN <> table1.SN
    

答案 1 :(得分:0)

使用IP排除table1已存在INSERT INTO table1 (IP) SELECT t1.ROU_IP FROM routers t1 WHERE NOT EXISTS (SELECT * FROM table1 t2 WHERE t2.IP = t1.ROU_IP); 的行。

setForm(form){
    this.form = form
}