[英]Postgres: How to set check constraint during an update?
設置值約束的一種方法是使用數據庫檢查約束:
balance integer CHECK (balance > 0)
是否可以在更新期間聲明約束,例如:
UPDATE xx SET balance = balance + 1000 WHERE user_id=$1 CHECK balance > $2
並能夠在一個查詢中執行此操作。
您可以添加一個hack assert 。 對於SQL Server,這將是:
UPDATE xx
SET balance = balance + 1000
WHERE user_id=$1
AND IIF((balance + 1000) > $2, 0, 0/0) = 0
如果出現問題,這將導致除以零誤差。 這是一個很大的技巧,但它可以用作內聯斷言。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.