1
我對Postgres非常陌生,現在我的任務是創建一個插入後觸發的觸發器。基本上,我會讓一個腳本做一個插入,觸發這個觸發器,它將根據插入語句中的參數從另一個表中獲取一個字段,然後使用另一個表中的值更新新插入的記錄。Postgres從當前插入創建觸發器參數
- INSERT記錄到表1
INSERT INTO "TableA" VALUES ('ABC-101', 'John Doe', '')
PersonID | Name | Address
------------------------------
ABC-101 John Doe
- 該插入後,我會再火會從在表B字段搶值的觸發。
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中(說地址),我需要爲了完成紀錄表A搶到場。我使用一個ID來引用從TableB獲取的地址。