use*_*873 15 postgresql triggers
我有一张名为奖项的表.如何在PostgreSQL中安装Trigger,其中表中的每个插入奖励更新不同的表?
Sac*_*pta 36
这里我们有两个名为table1和的表table2.使用触发器我会table2在插入时更新table1.
创建表
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
)
Run Code Online (Sandbox Code Playgroud)
触发功能
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;
Run Code Online (Sandbox Code Playgroud)
触发
CREATE TRIGGER trig_copy
AFTER INSERT ON table1
FOR EACH ROW
EXECUTE PROCEDURE function_copy();
Run Code Online (Sandbox Code Playgroud)
您需要PL/PgSQL triggers的文档,其中仅讨论了这种情况。有关触发器的一般文档也可能有用。
为此,您可以使用 aBEFORE或AFTER触发器。不过,我可能会使用AFTER触发器,以便我的触发器看到正在插入的行的最终版本。你想要FOR EACH ROW,当然。
| 归档时间: |
|
| 查看次数: |
28304 次 |
| 最近记录: |