如何检测数据库中是否已存在新行,数据更改或冲突情况?

时间:2019-05-08 07:13:28

标签: mysql

我的MySQL数据库的数据每天晚上都通过LOAD DATA IN FILE从excel文件导入。然后将它们临时存储在表projekt2中。

对于projekt2中的每一行,我要检查projekt1中是否已经存在与之完全匹配的行(所有列),因此不应将其导入。

如果一列不同,则应将该行标识为更正,并且应更改旧行。

如果两列,三列,五列或五列不同,则应将其标识为冲突,并且系统应发送电子邮件并询问该怎么做。

如果多于五列,则应将其标识为新行并添加到表中。

  

我的Mysql版本:10.1.37-MariaDB-0 + deb9u1

我开始检查所有可能性,例如全部相等,然后只有第一个是不同的,但其余所有都相等,然后仅是第二个,等等。

但是最后会有很多查询,我希望有一种更有效的方法来解决重复列的计数。

UPDATE 
SELECT * FROM projekt2 
WHERE EXISTS (
    SELECT id FROM projekt1 
    WHERE projekt1.datum = projekt2.datum 
      AND projekt1.begleitschein = projekt2.begleitschein 
      AND projekt1.menge = projekt2.menge 
      AND projekt1.abfallschluessel = projekt2.abfallschluessel 
      AND projekt1.entsorgungsnachweis = projekt2.entsorgungsnachweis 
      AND projekt1.befoerderer = projekt2.befoerderer 
      AND projekt1.erzeuger = projekt2.erzeuger 
      AND projekt1.waegennummer = projekt2.waegennummer 
      AND projekt1.waage = projekt2.waage 
      AND projekt1.kfz = projekt2.kfz 
      AND projekt1.charge = projekt2.charge 
      AND projekt1.art = projekt2.art
  ),

0 个答案:

没有答案