在使用SQL插入时自动更新DATETIME列?

Joe*_*tto 2 mysql

我目前只是将其插入NOW()数据库中的date字段,效果很好,但是让我想知道,有没有一种方法可以DATETIME在插入数据时自动更新行?

我在某些地方在线找到了应该设置附加功能的地方,ON UPDATE CURRENT_TIMESTAMP但是这样做时,出现以下错误:

An error occurred when trying to change the field 'uploaded' via

ALTER TABLE `uploads` CHANGE `uploaded` `uploaded` DATETIME
 NOT NULL
 ON UPDATE CURRENT_TIMESTAMP
 COMMENT 'Upload Datetime'
Run Code Online (Sandbox Code Playgroud)

MySQL说:

“已上传”列的无效ON UPDATE子句

Jus*_*_It 6

似乎你的查询是错误的,试试这个对我有用:

ALTER TABLE `uploads` CHANGE `uploaded` `uploaded` 
DATETIME NOT NULL ON UPDATE CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)

测试了一下。


san*_*zti 5

这就是我所做的,并且一直有效

create table if not exists my_table (
    index1 char(32) not null primary key,
    title varchar(50),
    my_timestamp timestamp not null default current_timestamp on update current_timestamp
)
Run Code Online (Sandbox Code Playgroud)

这将在插入和更新上带有时间戳,它也是有效的sql,也许您在查询中缺少默认语句?


Joe*_*tto 5

似乎问题在于,在更改列时,该列必须TIMESTAMP不是DATETIME,我能够成功添加CURRENT_TIMESTAMP参数。