【Postgresql】触发器某个字段更新时执行,行插入或更新执行
生活随笔
收集整理的這篇文章主要介紹了
【Postgresql】触发器某个字段更新时执行,行插入或更新执行
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【Postgresql】觸發器某個字段更新時執行,行插入或更新執行
- 1. postgresql觸發器
- 2. 觸發器的創建及示例
- 1) 字段更新時,觸發
- 2) 行插入或更新時,觸發
- 3. 觸發器的刪除
- 4. 觸發器的坑
- 參考
1. postgresql觸發器
觸發器可以理解為一種綁定,在某個場景出現時自動做的操作,可以執行復雜的Procedure,也可以是簡單的sql;
-
場景可以是:字段更新、行插入、行更新
-
步驟:
1)創建觸發器被觸發時,需要執行的函數方法;
2)創建觸發器,并綁定函數;
2. 觸發器的創建及示例
1) 字段更新時,觸發
業務場景,當tableA表的num更新的時候,把ID相同的數據的tabelA表的count字段值更新為num*10;
create or replace FUNCTION func_updateposition() RETURNS trigger
AS
$func_updateposition()
BEGINupdate tableA set count= num*10 where id = NEW.ID;RETURN NEW;
END;
$func_updateposition$ LANGUAGE plpgsql;create trigger updatePosition_trigger AFTER UPDATE OF "num" ON tableA
FOR EACH ROW EXECUTE PROCEDURE func_updateposition();
2) 行插入或更新時,觸發
3. 觸發器的刪除
觸發器是綁定在表的行或者列上的,刪除語句中需要指定觸發器名稱及表名;
drop trigger updatePosition_trigger on tableA;
4. 觸發器的坑
- 千萬不要表的行列更新,每一行都建立觸發器,那樣表的數據量大了,會壓力賊大;
- 分布式的情況下主外鍵依賴、觸發器盡量不要,會帶來額外消耗;
- 觸發器可以用在必須的情況下,或者只是某個列字段更新或者插入上,這樣會更無感,高效;
參考
- https://www.runoob.com/postgresql/postgresql-trigger.html
- https://www.cnblogs.com/fanbi/p/10307435.html
- https://blog.csdn.net/weixin_42101813/article/details/106946561
- https://blog.csdn.net/yueludanfeng/article/details/86650993
總結
以上是生活随笔為你收集整理的【Postgresql】触发器某个字段更新时执行,行插入或更新执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Python,OpenCV实现图像之
- 下一篇: SpringBoot 【IDEA热部署+