我有一个名为 test 的 MySQL 表。我需要再添加三列 VERSION
数据类型 bigint、CREATE_TIMESTAMP
数据类型 Date
和 LAST_UPDATE_TIMESTAMP
数据类型 Date
。
VERSION
的默认值应为 0
,CREATE_TIMESTAMP
和 LAST_UPDATE_TIMESTAMP
的默认值应为当前日期时间.
现在我正在做类似的事情:
alter table masterdatabase.test 添加列 VERSION bigint(50) default 0;
alter table masterdatabase.test 添加列 CREATE_TIMESTAMP date default NOW();
alter table masterdatabase.test 添加列 LAST_UPDATE_TIMESTAMP 日期默认 NOW();
它将 VERSION
列添加到表中,表的每一行中的默认值为 0
。但无法创建数据类型为 Date
的其他两列。
它在 MySQL 日志中显示错误:
改变表 masterdatabase.test 添加列 CREATE_TIMESTAMP 日期默认 NOW() |错误代码:1067。“CREATE_TIMESTAMP”0.000 秒的默认值无效
究竟是什么阻止了我创建那些我不理解的列。
请建议是否有其他方法可以做到这一点。
提前致谢!
最佳答案
使用 CURRENT_TIMESTAMP 而不是 NOW():
ALTER TABLE masterdatabase.test add column CREATE_TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
关于mysql - 使用 ALTER TABLE 命令在现有表中添加当前日期和时间为 : Not Working 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22498632/