【发布时间】:2015-12-18 15:28:48
【问题描述】:
我正在将数据库上传到 MySQL 并遇到此问题:
ERROR 1293 (HY000) at line 31:不正确的表定义;在 DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列
问题在于该表中有两列具有“Timestamp”数据类型,只有一个应该具有“Current Timestamp”值,而另一个默认值为“null”。当我上传数据库时,两列的值都更改为“当前时间戳”,这使得导出和导入的过程非常烦人,因为我必须在再次导入之前手动将其更改回 null。
知道为什么它会自动更改为“当前时间戳”吗?这是一个 Amazon EC2 linux 实例(见附件 mysql 版本)
【问题讨论】:
-
当我上传数据库时,两列的值都变为“当前时间戳” 这没有意义。当您“上传”数据库时,它们会发生变化是什么意思?是否涉及多台服务器?如果您希望时间戳不是自动的,则需要将其声明为
TIMESTAMP NULL DEFAULT NULL(而不是TIMESTAMP DEFAULT NULL),但目前尚不清楚您在问什么。 -
感谢您的回答@Michael-sqlbot ....对不起,我不清楚...我有两列设置为 TIMESTAMP,只有一列将 CURRENT_TIMESTAMP 作为默认值。当我导入数据库时(我在两个单独的服务器中复制了它),我得到了错误,即使其中一个默认为空...这里是列:
creationDatetimetimestamp NOT NULL,lastModificationtimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, ...错误是:#1293 - 表定义不正确;在 DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列
标签: mysql linux amazon-ec2 timestamp