我的数据库中有某个表的触发器,
CREATE TRIGGER trig_trig
AFTER DELETE OR UPDATE OR INSERT ON A
FOR EACH ROW
EXECUTE PROCEDURE trig_func();
无论如何..我想创建一个旧表的副本,然后对2之间的差异进行一些测试。
复制表格很简单,我只是这样做:
CREATE OR REPLACE FUNCTION trig_func() RETURNS TRIGGER AS $$
BEGIN
CREATE TABLE temp as(SELECT * FROM A);
DROP TABLE temp;
return new;
END;
$$ LANGUAGE plpgsql;
但我希望在更改之前和之后获得版本。这只会给我一个 我试过了:
CREATE TABLE temp as(SELECT * FROM OLD.A);
或
CREATE TABLE temp as(SELECT * FROM NEW.A);
但我刚收到错误。
有谁知道怎么做?
感谢名单。 亚光
答案 0 :(得分:0)
OLD
和NEW
是伪记录。行,而不是表格,您无法从中选择。
我可以很难建议如何做它,因为目前还不清楚你的用意是什么。也许你想创建一个BEFORE
操作副本和一个AFTER
?在单独的触发器中?