mysql将数据从表复制到表2中,不复制数据并添加新行

vq8itlhq  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(255)

我有两张table:
表1-ip、sn、版本、日期、工作时间
表2-ip、sn、vesrion
我只想将表1中不在表中的IP添加到表2中。并根据表1更新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

因此,在函数结束时,表1不会改变,表2将是:

IP
10.0.0.5
192.168.30.11
1.1.1.1
10.0.0.6
10.0.0.7

谢谢。

hpcdzsge

hpcdzsge1#

这里有两个单独的查询来完成这项工作。
在表2中添加不存在的记录

INSERT INTO table2 (SELECT IP, SN, Vesrion FROM table1 where table1.IPnot in (select IPfrom table2));

更新现有数据

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
kdfy810k

kdfy810k2#

使用 NOT EXISTS 排除具有 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);

相关问题