[使用某些值更新记录时如何将字段重置为MYSQL表中的DEFAULT值?

问题描述 投票:0回答:1

我有一个名为“客户”的MYSQL表,其中包含以下字段:

  • id(主键,整数,自动递增)
  • 名称(varchar(20),默认值='')
  • 姓(varchar(20),默认值='')
  • age(int,默认值= NULL)
  • city(varchar(20),默认值='')

问题很简单:

如果我必须更新“名称”和“姓氏”,我希望该记录的所有其他字段都返回其初始值,而无需明确声明它们。

是否有任何指令可以自动执行此操作?

谢谢大家! :)

mysql sql database sql-update default
1个回答
0
投票

是否有任何指令可以自动执行此操作?

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

因此,您需要在update语句中显式分配要重置的列。您可以使用DEFAULT作为目标值来简化逻辑,因此您不必记住每个默认值。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.