PostgreSQL事务中的SELECT查询甚至使用ROLLBACK提交数据

时间:2017-05-02 02:15:05

标签: postgresql transactions

与MSSQL相比,我试图绕过PostgreSQL中的事务。我想测试一些更新命令然后回滚,在SELECT命令之间散布UPDATE个查询,以确认结果符合我的预期。以下是我尝试做的简化示例:

BEGIN;
UPDATE my_table SET int_column = 1 WHERE id = 1;

-- i want to check that the column has been set to 1
SELECT * FROM int_column WHERE id = 1;

-- i want to rollback the updates while testing
ROLLBACK;

让我感到困惑的是SELECT查询似乎提交更新,即使ROLLBACK作为最后一个语句也是如此。如果我删除SELECT,则回滚会阻止更新,但是如果我将其保留在那里,则实际更新了列!我必须在这里遗漏一些东西,因为在MSSQL SELECT中可以在没有此问题的情况下在事务中使用查询。

我无法通过搜索或PostgreSQL Transaction Documentation找到有关此内容的任何详细信息。

1 个答案:

答案 0 :(得分:0)

我使用了psql代替Postico而我的问题已经解决,似乎Postico不支持此功能!