我的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
),