数据没有变化时是否需要更新

dai*_*dai 2 mysql sql database sql-update

我想更新表\xef\xbc\x8c中的一行,更新前是否需要检查每一列是否有变化?

\n

Gor*_*off 5

在 MySQL 中,您不需要检查该值。如果没有变化,MySQL 不会更新记录。这意味着 MySQL 不会产生记录或写入数据的开销。检查是否有任何值发生变化会产生轻微的成本,并且我认为它确实会运行触发器。

其他数据库的行为有所不同。

这是在文档中一个神秘的位置,其中mysql_affected_rows()描述:

对于 UPDATE 语句,affected-rows 值默认是实际更改的行数。

。。。

大于零的整数表示受影响或检索的行数。零表示 UPDATE 语句没有更新任何记录、没有与查询中的 WHERE 子句匹配的行或者尚未执行任何查询。