我正在尝试将Magento 1.8数据库的mysqldump(在MySQL 5.6社区上托管)恢复到MySQL 5.5社区服务器中,我收到以下错误:
ERROR 1067 (42000) at line 190: Invalid default value for 'created_at'
查看此行周围的.sql
文件,似乎是这个查询块:
--
-- Table structure for table `api2_acl_role`
--
DROP TABLE IF EXISTS `api2_acl_role`;
CREATE TABLE `api2_acl_role` (
`entity_id` int(10) unsigned auto_increment,
`created_at` timestamp DEFAULT 'CURRENT_TIMESTAMP',
`updated_at` timestamp,
`role_name` varchar(255),
PRIMARY KEY (`entity_id`),
KEY `IDX_API2_ACL_ROLE_CREATED_AT` (`created_at`),
KEY `IDX_API2_ACL_ROLE_UPDATED_AT` (`updated_at`)
)/*! engine=InnoDB comment='Api2 Global ACL Roles' */;
知道如何解决此问题吗?
答案 0 :(得分:0)
'
周围不应该是CURRENT_TIMESTAMP
,它是MySQL中的一项特殊功能。
答案 1 :(得分:0)
我在CREATE
语句中看到了两个问题,如下所示
从下面一行的'
移除'CURRENT_TIMESTAMP'
(单引号)。那不是字符串文字。
`created_at` timestamp DEFAULT 'CURRENT_TIMESTAMP'
[根据您的评论]
发生错误是因为MySQL
只能索引BLOB或TEXT列的前N个字符,而您在定义密钥时没有为data_index
列指定任何长度。
KEY `FTI_CATALOGSEARCH_FULLTEXT_DATA_INDEX` (`data_index`)
您的CREATE
声明应该是
CREATE TABLE `catalogsearch_fulltext` (
`fulltext_id` INT(10) UNSIGNED AUTO_INCREMENT,
`product_id` INT(10) UNSIGNED,
`store_id` SMALLINT(5) UNSIGNED,
`data_index` longtext,
PRIMARY KEY (`fulltext_id`),
UNIQUE `UNQ_CATALOGSEARCH_FULLTEXT_PRODUCT_ID_STORE_ID`
(`product_id`,`store_id`),
KEY `FTI_CATALOGSEARCH_FULLTEXT_DATA_INDEX` (`data_index`(255))) <-- Here
如果有疑问,请检查此Fiddle Demo。