Mysql 列名未将时间戳作为默认值
我在同一个表中创建了两列,更新了。这两列的数据类型均为datetime。现在,当我试图修改列数据类型时,如下所示-Mysql 列名未将时间戳作为默认值,mysql,sql,mysql-error-1067,Mysql,Sql,Mysql Error 1067,我在同一个表中创建了两列,更新了。这两列的数据类型均为datetime。现在,当我试图修改列数据类型时,如下所示- alter table nodestatics modify column updated_at datetime default current_timestamp; alter table nodestatics modify column created_at datetime default current_timestamp; 它显示以下错误 错误代码:1067“更
alter table nodestatics modify column updated_at datetime default current_timestamp;
alter table nodestatics modify column created_at datetime default current_timestamp;
它显示以下错误
错误代码:1067“更新时间”的默认值无效(0毫秒)
错误代码:1067“创建时间”的默认值无效(0毫秒)
我的mysql版本是5.5.41-0ubuntu0.14.04.1(Ubuntu)在评论中很难参考:
从MySQL 5.6.5开始,TIMESTAMP
和DATETIME
列可以自动
初始化并更新到当前日期和时间(即
当前时间戳)。在5.6.5之前,这仅适用于时间戳
,并且
每个表最多有一列时间戳
要么升级到5.6.5。或者使用TIMESTAMP
而不是DATETIME
试试这个
alter table nodestatics modify column created_at timestamp default current_timestamp;
使用时间戳
代替日期时间
应该是这样的:
ALTER TABLE nodestatics MODIFY COLUMN updated\u at TIMESTAMP DEFAULT CURRENT\u TIMESTAMP代码>
ALTER TABLE nodestatics修改在时间戳默认当前时间戳创建的列代码>
或者您可以使用触发器
CREATE TRIGGER myTable_OnInsert BEFORE INSERT ON `tblMyTable`
FOR EACH ROW SET NEW.dateAdded = NOW();
你可以看看。快乐编码 还有一个问题。我们可以使用now()来克服这个问题吗?如果是,那怎么可能呢?@AnirudhRautela。不可以。您可以使用触发器来克服此问题。我们可以对特定表中的一列使用时间戳。在这种情况下,您可以使用触发器。检查我给定的链接如何使用它。