gpt4 book ai didi

sql - 是否有一种特殊形式的 UPDATE 语句除了检查有效 SQL 外什么都不做?

转载 作者:行者123 更新时间:2023-11-29 11:55:17 26 4
gpt4 key购买 nike

我有一个包含 2 列(均为整数)的表,主键由这两列组成。我的应用程序没有对该表执行 UPDATE 语句,我使用的是 PostgreSQL。

但是我的应用程序通过提前使用特定的表信息为所有表创建了 INSERT、DELETE 和 UPDATE 准备好的语句。对于这个特定的表,UPDATE 语句的 WHERE 子句包含这两列,但 SET 子句为空,这会导致错误。

是否有一种特殊形式的 UPDATE 语句,它除了检查有效 SQL 外什么都不做?

提前致谢...

最佳答案

这样的说法是错误的选择。不要这样做。

update foo set bar = bar;

虽然基础数据似乎没有改变,但 PostgreSQL 实际上执行了更新,以及它的所有副作用。副作用可能包括这些。

  • 更新影响的行数不确定。
  • 写入事务日志。 (可能会写很多。)
  • 触发触发器。
  • 强制外键约束,可能是级联更新。

使用 WHERE FALSE 检查错误。

update foo set bar = bar where false;

简单的测试将显示没有更新发生,没有触发器触发等。

这两个查询的执行计划完全不同。使用 explain analyze 检查。

关于sql - 是否有一种特殊形式的 UPDATE 语句除了检查有效 SQL 外什么都不做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29142403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com