如果数据相同,系统版本表上的 MariaDB 不会更新

No Update in MariaDB on System-Versioned tables if the data is the same

如果数据没有改变,有没有办法告诉 MariaDB 不要更新系统版本表中的行?

我有一个批处理作业可以在我的 table 中设置正确的状态,我不想总是检查这个状态是否已经设置。现在,我每次都生成一个历史条目。

我正在寻找一个通用的解决方案,因为这只是一个例子,我经常做类似的事情。

我使用的是 MariaDB 10.7.3,但我想每个版本都一样。

系统版本表在 SQL 2011 年定义,并要求每个事务(无论 row/column 是否 modified/updated 具有相同的值)都将存储在历史日志中。没有更改或禁用此功能的设置。

正如 danblack 所指出的,您可以通过指定排除 where 子句或不可能的 where 子句来修改语句。在这两种情况下,都不会执行更新语句,也不会写入历史日志。