我有一个名为"awards"的表。在PostgreSQL中,如何创建一个触发器,在每次对"awards"表进行插入操作时更新不同的表?
我有一个名为"awards"的表。在PostgreSQL中,如何创建一个触发器,在每次对"awards"表进行插入操作时更新不同的表?
这里有两个名称为 table1
和 table2
的表。使用触发器,在向 table1
中插入数据时,我会更新 table2
。
创建表格
CREATE TABLE table1
(
id integer NOT NULL,
name character varying,
CONSTRAINT table1_pkey PRIMARY KEY (id)
)
CREATE TABLE table2
(
id integer NOT NULL,
name character varying
)
触发器函数
CREATE OR REPLACE FUNCTION function_copy() RETURNS TRIGGER AS
$BODY$
BEGIN
INSERT INTO
table2(id,name)
VALUES(new.id,new.name);
RETURN new;
END;
$BODY$
language plpgsql;
触发器
CREATE TRIGGER trig_copy
AFTER INSERT ON table1
FOR EACH ROW
EXECUTE PROCEDURE function_copy();
new
和 NEW
一样吗? - Abel CallejoBEFORE
或AFTER
触发器来实现此目的。我可能会使用AFTER
触发器,这样我的触发器就可以看到插入行的最终版本。当然,你需要使用FOR EACH ROW
。