【发布时间】:2014-05-25 23:16:08
【问题描述】:
我正在尝试创建一个将值插入临时表的触发器,但我也希望它从我要修改的实际表中删除这些值,以便更好地解释自己:
我已经创建了这个表
create table R2(a int, b date);
还有一个和R2基本一样的临时表
CREATE GLOBAL TEMPORARY TABLE R2TEMP
AS SELECT * FROM R2;
如果我这样做:
INSERT INTO R2 VALUES (1,'09/05/1995');
我希望这个触发器在 R2TEMP 中插入这些值,而不是在 R2 中插入它们(我使用了 DELETE FROM R2,但我想知道如何避免它)
CREATE OR REPLACE TRIGGER BLOCK_INSERT2
BEFORE INSERT ON R2
FOR EACH ROW
BEGIN
INSERT INTO R2TEMP(A,B)
SELECT * FROM R2;
DELETE FROM R2;
END;
我想知道如何将这些值插入到另一个表中,与导致触发器的表不同,我希望我自己解释一下,感谢您抽出宝贵时间
【问题讨论】:
-
创建一个名为 R2REAL 的表。使 R2 成为 R2REAL 上的视图,而不是表。在 R2(视图)上创建一个 INSTEAD OF INSERT 触发器。分享和享受。