【问题标题】:Every time I create a table timestamp automatically adds ON UPDATE每次我创建表时间戳时都会自动添加 ON UPDATE
【发布时间】:2020-03-11 03:11:17
【问题描述】:

当我创建一个带有时间戳属性的表时,它会自动添加一个 ON UPDATE 属性。我不希望在编辑该行时更新该列。当我创建 ON UPDATE 什么都不做的表时,如何在 .sql 中手动设置。

CREATE TABLE test(
    ...

    date_added    timestamp
                  NOT NULL,
    ...
);

【问题讨论】:

  • 如果您将列定义为 NOT NULL 并且未在 INSERT 上提供值,它将被设置为 NOW。将列定义更改为 NULL 或提供值。详情:dev.mysql.com/doc/refman/8.0/en/…

标签: mysql sql database timestamp create-table


【解决方案1】:

这就是为什么您首先要使用 TIMESTAMP 列的原因,它们具有像这样被自动分配的特殊属性。

如果您不想要这种行为,请改用DATETIME。这些具有额外的优势,例如当 2038 rolls around and ruins everything 基于 32 位时间值时实际工作 18 年后。

【讨论】:

  • 等待是timestampTIMESTAMP 2 个不同的东西?
  • MySQL 的关键字不区分大小写,所以不,它们是一回事。 SQL 关键字,包括列类型,传统上都是全大写。
  • 日期时间有时区吗?我真的对时区感到困惑,因为我的服务器处于 PST 时间,而我处于 AEST 时间。
  • 基本规则是始终将您的数据以 UTC 格式存储在服务器上,并根据应用层中的用户偏好映射到本地时间。这是因为在 MySQL 中,这些字段没有烘焙时区信息,而烘焙时区信息非常非常困难,因为时区以各种不可预测且通常无意义的方式发生变化。
猜你喜欢
  • 2014-06-24
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2023-03-29
  • 2019-05-12
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
相关资源
最近更新 更多