在使用navicat创建表的时候,报错
[Err] 1064 - 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 'USING BTREE,
KEY `sort_order` (`sort_order`)
) ENGINE=InnoDB AUTO_INCREMENT=' at line 11
找了半天,发现USING BTREE出现了错误,
DROP TABLE IF EXISTS `XX`;
CREATE TABLE `XX` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '类目ID',
`parent_id` bigint(20) DEFAULT NULL COMMENT '父类目ID=0时,代表的是一级的类目',
`name` varchar(50) DEFAULT NULL COMMENT '类目名称',
`status` int(1) DEFAULT '1' COMMENT '状态。可选值:1(正常),2(删除)',
`sort_order` int(4) DEFAULT NULL COMMENT '排列序号,表示同级类目的展现次序,如数值相等则按名称次序排列。取值范围:大于零的整数',
`is_parent` tinyint(1) DEFAULT '1' COMMENT '该类目是否为父类目,1为true,0为false',
`created` datetime DEFAULT NULL COMMENT '创建时间',
`updated` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `parent_id` (`parent_id`,`status`) USING BTREE,
KEY `sort_order` (`sort_order`)
) ENGINE=InnoDB AUTO_INCREMENT=1183 DEFAULT CHARSET=utf8 COMMENT='商品类目';
KEY `parent_id` USING BTREE (`parent_id`,`status`) ,
将USING BTREE放到前面即可。
1.出现了不兼容性问题,在MySQL5.1中创建UNIQUE KEY的表导出的时候就是 KEY `parent_id` (`parent_id`,`status`) USING BTREE这样子。
2.处理MySQL5.0的时候,只能做到识别 KEY `parent_id` USING BTREE (`parent_id`,`status`) ,
要想运行MySQL语句,就把KEY移到了字段前面。