【发布时间】:2014-10-27 22:02:55
【问题描述】:
我有一个默认值为CURRENT_TIMESTAMP 的日期列。它在本地运行良好,但是当我进行导出并尝试在主机上创建数据库时,我得到了这个:
`Invalid default value for 'created'`
...从此代码:
CREATE TABLE IF NOT EXISTS `bookings` (
`id` varchar(11) NOT NULL,
`user_id` int(11) NOT NULL,
`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`cloned` int(11) DEFAULT NULL,
`event_id` varchar(11) NOT NULL,
`amount_due` smallint(6) NOT NULL,
`vat` tinyint(2) NOT NULL,
`discount` tinyint(4) DEFAULT NULL,
`date_paid` date DEFAULT NULL,
`notes` mediumtext,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
this question 的答案说,显然,CURRENT_TIMESTAMP 仅适用于日期时间列,而不是日期列。但就像我说的,它在本地工作,而不是远程工作。
会不会是 MySQL 版本的不同造成的?
本地 MySQL:协议 v10 / 服务器 v5.6.16
远程 MySQL:协议 v10 / 服务器 v5.5.35
由于服务器版本较高,我是否可以在本地解决这个问题?
【问题讨论】:
-
"CURRENT_TIMESTAMP 是一个可接受的默认值,仅适用于日期时间,而不是日期、列" - 在您的 SQL 中
created是一个日期时间列... -
@ODaniel - 很好发现,所以这件事对我来说似乎是不适用的。 Senk - 谢谢,我刚刚读过。看来这可能是一个版本的事情,那么。
标签: mysql database import export