簡體   English   中英

在使用PostgreSQL 9.1的函數調用中使用舊值

[英]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

調用觸發器時,它會自動訪問變量OLDNEW 您不需要將它們作為參數傳遞。 請參閱上面鏈接的文檔。

如果使用BEFORE觸發器,則可以通過更改NEW來修改價格,然后再將其寫入表中,也可以提高RAISE EXCEPTION來中止交易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM