gpt4 book ai didi

php - mySQL `date_updated` 列仅适用于特定字段 : SELECT and INSERT vs TRIGGER?

转载 作者:行者123 更新时间:2023-11-29 11:21:07 25 4
gpt4 key购买 nike

我有一堆资源存储在 MySQL 数据库中。

每个都有一个 date_modified设置为 ON UPDATE CURRENT_TIMESTAMP 的字段.

但是,这些表上现在有一些我们不想触发 date_modified 的列。 .

据我所知,有两种选择。 (不包括重构表)

1) 更新前,从DB加载当前实体,检查字段是否发生变化,并设置date_modified以此为基础。

2) 创建 TRIGGER对于每个将检查 NEW 的表反对 OLD 的字段字段并设置时间戳。

我在这两种方法之间左右为难。

1 将会有更大的开销,因为它必须执行 2 个查询。

2 有助于维护数据完整性,但可能会在以后引起问题,因为它掩盖了一些应用程序逻辑。如果稍后添加新字段,开发人员还必须记住更新触发器以确保它更新修改后的列。

还有第三种方法吗?以某种方式在 UPDATE 中检查值是否已更改,然后更新 date_modified?

或者还有其他方法可以解决这个问题吗?

最佳答案

还有第三种选择。在 UPDATE 查询中提及 date_modified 列。

例如,

  UPDATE some_table
SET some_column = 'new value',
date_modified = date_modified
WHERE id = some_id_value

这将更改表中的行,同时保留 date_modified 值。

关于php - mySQL `date_updated` 列仅适用于特定字段 : SELECT and INSERT vs TRIGGER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916394/

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