【问题标题】:Postgres DELETE FROM not deleting rows but returning successPostgres DELETE FROM 不删除行但返回成功
【发布时间】:2020-03-09 03:02:08
【问题描述】:

当我尝试从表中删除行时,它不起作用。 我使用了标准的 DELETE FROM 语句,使用 tag_id=1 第一条语句返回成功,所以我希望这些行被删除。 但是,不会删除行。而且我似乎无法弄清楚为什么。

  • 这可能是什么原因?

下图有具体的查询语句,以及返回结果。

【问题讨论】:

  • 你的桌子有删除权限吗?
  • 当你删除时,它会告诉你有多少行受到影响?
  • 自动提交是否开启?是否有可能是您删除、回滚然后选择了?

标签: sql postgresql


【解决方案1】:

有几种可能:

  • 表上有一个触发器可以防止行被删除。

    看看

    \d project_tag
    
  • 您的索引已损坏。试试

    REINDEX TABLE project_tag;
    

【讨论】:

    【解决方案2】:

    我的问题不同(因为 DELETE 似乎有效),但这个问题是排名第一的搜索结果,措辞与我的问题完全相同。我想说:

    自动提交

    某些数据库连接在其连接配置文件中具有自动提交选项。检查是否解决了我的问题。

    【讨论】:

    • 同意,我正在使用 SQLAlchemy python,我设置了 autocommit=False,因此,我必须调用 session.commit() 以使其对数据库执行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    相关资源
    最近更新 更多