如何在使用某些值更新记录时将 MYSQL table 中的字段重置为默认值?

How to reset fields to DEFAULT value in a MYSQL table when update a record with some value?

我有一个名为 "customers" 的 MYSQL table,具有以下字段:

问题很简单:

如果我必须更新 "name" 和 "surname",我希望该记录的所有其他字段都返回到它们的起始值,而无需明确声明它们。

是否有自动执行此操作的指令?

谢谢大家! :)

Is there any instruction that automatically does this?

没有。 MySQL 仅在日期时间和时间戳的列定义中支持 ON UPDATE 子句(并且仅将列设置为当前日期)。其他数据库甚至不支持ON UPDATE

因此您需要在 update 语句中明确指定要重置的列。您可以通过使用 DEFAULT 作为目标值来稍微简化逻辑,因此您无需记住每个默认值。

update customers 
set
    name = 'foo',
    surname = 'bar',
    age = default,
    city = default
where id = 1

无关说明:存储年龄不是一个好的做法,因为此信息会随着时间而变化。相反,您可以存储出生日期,并在需要时即时计算年龄(或使用视图)。