【发布时间】:2012-10-19 16:53:41
【问题描述】:
当我执行一项任务时,我的表中会插入两行,即。复制。我需要使用插入后触发器删除重复项。我需要从那些 2 中删除一个重复记录。我需要这样的东西
CREATE TRIGGER del_rec
INSERT ON table1
AFTER(EXECUTE PROCEDURE del_proc());
CREATE PROCEDURE del_proc()
//check field a,b,c of this table already exists for this id. if yes delete the second one
END PROCEDURE;
例如:
table 1:
a b c d e
1 1 1 2 2
1 1 1 2 2
它应该删除第二行。
【问题讨论】:
-
为什么不对表做唯一性约束,保证不能插入重复行?让 DBMS 拒绝该值要比事后检查表中是否有任何重复的行集要容易得多,尤其是因为删除一对相同的行中的一个很困难。