use*_*863 45 sql database postgresql
我如何测试UPDATE语句以查看它是否可行,例如它是否实际更新行等?
有没有办法轻松模拟它?
Pau*_*sik 70
使用事务来包装更新语句和选择查询(以测试更新),然后始终将其回滚.
例:
BEGIN;
UPDATE accounts SET balance = balance - 100.00
WHERE name = 'Alice';
SELECT accounts WHERE name = 'Alice';
ROLLBACK; -- << Important! Un-does your UPDATE statement above!
Run Code Online (Sandbox Code Playgroud)
事务通常以提交结束,但由于您只是在测试并且不希望更改是永久性的,因此您只需回滚即可.
Joe*_*lli 37
将其包装在事务中,使用SELECT测试结果并在结尾处回滚.
BEGIN;
UPDATE ...;
SELECT ...;
ROLLBACK;
Run Code Online (Sandbox Code Playgroud)
Tho*_*rge 32
UPDATE在 SQL命令前面加上EXPLAIN[ ref ],它将不会执行实际的更新。例如:
EXPLAIN UPDATE accounts SET balance = balance + 100.00 WHERE name = 'Alice';
Run Code Online (Sandbox Code Playgroud)
它不会(总是)告诉您将更新的行数,而是告诉您有多少行与子句匹配WHERE。在上面的例子中,这些数字是相同的。
您可以参考 Paul Sasik 的回滚方法的回答。