【问题标题】:Postgresql - psql cancelling statementPostgresql - psql 取消语句
【发布时间】:2014-07-09 08:54:39
【问题描述】:

当我在 psql 提示符中发出“删除”语句,然后在运行时取消它(通过按 Ctrl-C),由“错误:由于用户请求而取消语句”确认,我可以确定没有行被删除还是我应该假设某些行可能已被删除?

非常感谢您的回答!

问候, 杰克

【问题讨论】:

    标签: postgresql psql


    【解决方案1】:

    DELETE [... WHERE ...] 语句作为单个事务执行,因此只有两种可能的结果:

    1. 数据库未更改(未删除任何行)。

    2. 所有行都被删除了。

    如果交易因取消而中止,则结果 #1 - 没有变化。

    只有当您的取消太迟而无法中止交易时,才会出现#2。

    【讨论】:

    • 为了避免第 2 种情况,auto-commit 可以关闭(\set AUTOCOMMIT off,可以添加到 .psqlrc 作为默认值),并且需要明确的 commit永久删除。
    猜你喜欢
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2012-10-18
    • 2019-03-29
    • 2013-01-13
    • 2013-06-18
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多