在sql中删除触发器中的重复行

zzlelutf  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(242)

所以我制作了table1和table2以及一个触发器,这样当table1上有一个insert时,数据就会从table1插入到table2中。然后,我使用另一个触发器执行另一个步骤,在表2上插入之后,它插入到另一个表中,表3包含表2的数据。触发器的位置是“for each row”,所以不幸的是,当表1上发生第二次插入时,它会进入表2,表3会再次读取新的第二行和第一行。
理想情况下,为了防止这种情况发生,或者为了减少影响,在相应触发器的末尾或开头删除重复项是有意义的,这样就不会以指数形式用重复行填充表。然而,到目前为止,我还没有找到一种方法在一个触发器内完成它。有可能吗?有什么帮助吗?这些表也没有主键或外键。提前谢谢。
我迄今为止尝试过的一个例子:

DELETE FROM table2 WHERE rowid NOT IN (SELECT MIN(rowid) FROM table2 GROUP BY col1, col2, col3, ...);

虽然我觉得这是给sqlite的?正如我在sqlite数据库中看到的那样,这里我得到一个错误,它不能识别列rowid。
我还在insert期间尝试了where not exists,它首先用于不插入重复项,但是我需要一个更新作为触发器的一部分,该触发器会更改一些列值,因此在这种情况下它将不起作用,因为行总是不同于它们的初始insert。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题