设置值约束的一种方法是使用数据库检查约束:
balance integer CHECK (balance > 0)
是否可以在更新期间声明约束,例如:
UPDATE xx SET balance = balance + 1000 WHERE user_id=$1 CHECK balance > $2
并且能够在一个查询中执行此操作。
答案 0 :(得分:0)
您可以添加hack assert。对于SQL Server,这将是:
UPDATE xx
SET balance = balance + 1000
WHERE user_id=$1
AND IIF((balance + 1000) > $2, 0, 0/0) = 0
如果出现问题,这会导致零除错误。这是一个很大的黑客攻击,但它可以用作内联断言。