[英]Using old values in function call using PostgreSQL 9.1
我有一個觸發器,如果新價格太低,它將在更新后將給定模型的價格恢復為舊價格。 我想做的是這樣的:
EXECUTE PROCEDURE revertPrice(OLD.price, model)
我知道我不能在WHERE
子句之外使用OLD
,所以有什么解決方法嗎? 我正在運行Postgres 9.1.11。
您需要此作業的BEFORE或AFTER觸發器。
http://www.postgresql.org/docs/current/static/plpgsql-trigger.html
調用觸發器時,它會自動訪問變量OLD
和NEW
。 您不需要將它們作為參數傳遞。 請參閱上面鏈接的文檔。
如果使用BEFORE
觸發器,則可以通過更改NEW
來修改價格,然后再將其寫入表中,也可以提高RAISE EXCEPTION
來中止交易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.