簡體   English   中英

Postgres:如何在更新期間設置檢查約束?

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

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