[英]Update an existing column with data from another using a trigger on a view
我有一個查詢,我從問卷調查插件Moodle的多個表中提取數據。
這將返回一個視圖。 (將該視圖加入另一個視圖以進行php搜索)我想要的是app_ref
列,其中插入了引用號,以復制到同一視圖中的另一列ref_number
。
ref_number|app_ref
1234
2345
我已經用Google搜索過,並且我知道我需要使用觸發器,但是我從未使用過觸發器/構造觸發器(學習PostgreSQL),所以我不確定是否已在PostgreSQL網站上閱讀,觸發器會在運行之前還是之后運行?
如果我理解正確,則您想更新一個不可更新的視圖,因為它是從多個表中選擇的。
首先,您可以編寫一個執行所需更新的過程:
CREATE OR REPLACE FUNCTION my_view_update()
RETURNS trigger AS
$BODY$
BEGIN
-- Here comes your SQL to handle your ref_number and app_ref issue
-- use NEW.app_ref or OLD.app_ref to access values
RETURN NEW;
END
$BODY$
然后,您可以告訴視圖執行您的功能,而不是像這樣執行“ update”:
CREATE TRIGGER my_update
INSTEAD OF UPDATE
ON my_view
FOR EACH ROW
EXECUTE PROCEDURE my_view_update;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.