Mysql 我怎样才能加上?’;更新当前“U时间戳”时;在表创建时或通过alter table(未定义默认值)在列上

Mysql 我怎样才能加上?’;更新当前“U时间戳”时;在表创建时或通过alter table(未定义默认值)在列上,mysql,Mysql,我使用下面的查询来更改一个表,并在更新当前时间戳时在列上添加 ALTER TABLE my_table CHANGE column_name column_name TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP // can I remove this line ON UPDATE CURRENT_TIMESTAMP; 从上面的查询中,我是否可以将放在列的更新当前时间戳上,而不定义其默认值 当我尝试删除该部分时,查询将如下所示: alter tabl

我使用下面的查询来更改一个表,并在更新当前时间戳时在列上添加

ALTER TABLE my_table CHANGE column_name column_name TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP // can I remove this line
ON UPDATE CURRENT_TIMESTAMP;
从上面的查询中,我是否可以将
放在列的更新当前时间戳上,而不定义其默认值

当我尝试删除该部分时,查询将如下所示:

alter table new_table CHANGE updated_at updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

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

如果您尝试,会发生什么?您不能在该实例中设置默认值,然后不设置默认值。表的当前定义是什么?新建表,创建表
新建表
id
int(11)非空自动增量,
日期时间默认当前时间戳创建,
时间戳非空默认当前时间戳更新当前时间戳,主键(
id
)引擎=InnoDB默认字符集=latin1
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;