【发布时间】:2020-06-18 22:05:10
【问题描述】:
我正在尝试将架构从 mysql5.6 移动到 mysql5.5。
我将架构从 v5.6 导出到 .sql 文件,当尝试将文件导入到 v5.5 时,出现错误,但我不知道错误是什么,因为 sql 会报告所有错误为error in sql syntax。
这是我的创建命令,希望有人能帮助找出问题所在?
错误仅在此创建命令中,因此仅在此处发布相关部分
DROP TABLE IF EXISTS `status_change_logs`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `status_change_logs` (
`entry_id` int(11) NOT NULL AUTO_INCREMENT,
`match_id` int(11) NOT NULL,
`status` smallint(4) NOT NULL,
`timestamp` datetime(4) NOT NULL,
PRIMARY KEY (`entry_id`),
KEY `match_id` (`match_id`)
) ENGINE=InnoDB AUTO_INCREMENT=102273 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
错误
ERROR 1064 (42000) at line 897: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(4) NOT NULL,
PRIMARY KEY (`entry_id`),
KEY `match_id` (`match_id`)
) ENGINE' at line 5
Operation failed with exitcode 1
【问题讨论】:
-
你为什么要倒退而不是前进到 MySQL 8+?
-
@GordonLinoff 有一些限制,我不能在这里说。 :)
-
我相信
datetime类型不会采用括号中的大小,即它应该是datetime而不是datetime(4)至少对于旧版本的 mysql。 -
@px1mp 我应该用 datetime 替换所有 datetime(x) 吗?
-
@px1mp 请发表您的评论作为解决所有问题的答案!谢谢!