【发布时间】:2016-04-27 20:23:36
【问题描述】:
我是 Postgres 的新手,现在我的任务是创建一个在插入后触发的触发器。基本上,我会让脚本进行插入,触发触发器,该触发器将根据插入语句中的参数从另一个表中获取字段,然后使用另一个表中的值更新新插入的记录。
- 将记录插入表 1。
INSERT INTO "TableA" VALUES ('ABC-101', 'John Doe', '')
PersonID | Name | Address
------------------------------
ABC-101 John Doe
- 在此插入之后,我将触发从 TableB 中的字段中获取值的触发器。
CREATE OR REPLACE FUNCTION fn_getaddress()
RETURNS trigger AS
$BODY$
DECLARE
PersonID TEXT;
BEGIN
PersonID := TG_ARGV[0];
UPDATE "TableA"
SET "Address" = (SELECT "Address"
FROM "TableB"
WHERE "PersonID" = PersonID);
RETURN null;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
这是我的触发器:
CREATE TRIGGER tr_getaddress
AFTER INSERT
ON TableA
FOR EACH ROW
EXECUTE PROCEDURE fn_getaddress(personid);
所以基本上,我在 TableB 中有一个字段(比如地址),我需要抓取它才能完成 TableA 中的记录。我正在使用 ID 来引用从 TableB 中获取的地址。
【问题讨论】:
标签: postgresql function triggers plpgsql