如何在创建表时或通过更改表而不定义其默认值的列上添加“ON UPDATE CURRENT_TIMESTAMP”

May*_*eyz -5 mysql

我正在使用以下查询来更改表并添加ON UPDATE CURRENT_TIMESTAMP列。

ALTER TABLE my_table CHANGE column_name column_name TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP // can I remove this line
ON UPDATE CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)

从上面的查询中,我可以ON UPDATE CURRENT_TIMESTAMP不定义默认值的情况下放置一列吗?

当我尝试删除该部分时,查询将类似于:

alter table new_table CHANGE updated_at updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)

它显示错误:alter table new_table CHANGE updated_at updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 错误代码:1067。'updated_at' 的默认值无效

Mic*_*bot 11

ALTER TABLE t1
  MODIFY COLUMN c1
  TIMESTAMP
  NULL -- the opposite is NOT NULL, which is implicitly set on timestamp columns
  DEFAULT NULL -- no default value for newly-inserted rows
  ON UPDATE CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)