具体sql语句如下:
use jjj;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`userid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号' ,
`phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号' ,
`password` varchar(80) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '登录密码' ,
`tradepwd` varchar(80) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '交易密码' ,
`name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称' ,
`logo` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`type` int(2) NULL DEFAULT NULL COMMENT '类型1普通用户2代理商' ,
`templateId` int(11) NULL DEFAULT NULL COMMENT '类型模板' ,
`authState` int(2) NULL DEFAULT 0 COMMENT '实名认证(0未认证,1认证中,2认证成功,3认证失败)' ,
`idNum` varchar(24) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '身份证号码' ,
`realName` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '真实姓名' ,
`frontImg` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '身份证正面照' ,
`reverseImg` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '身份证反面照' ,
`fullImg` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '大头照' ,
`authRemark` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '实名认证备注' ,
`state` int(2) NULL DEFAULT 1 COMMENT '状态 1正常 0禁用' ,
`referrer` int(11) NULL DEFAULT NULL COMMENT '推荐人' ,
`frozenday` int(11) NULL DEFAULT NULL COMMENT '采用系统默认周期' ,
`xcode` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '二维码' ,
`inviteCode` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邀请码' ,
`createtime` datetime NULL DEFAULT NULL COMMENT '创建时间' ,
`endtime` datetime NULL DEFAULT NULL ,
`switchbtn` int(11) NULL DEFAULT 0 COMMENT 'ctc交易开关' ,
PRIMARY KEY (`userid`),
UNIQUE INDEX `phone` (`phone`) USING BTREE ,
UNIQUE INDEX `inviteCode` (`inviteCode`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
COMMENT='用户'
AUTO_INCREMENT=1077
;
报错截图如下:
原因:MySQL在创建表时, 出现the right syntax to use near USING BTREE这样的错误,莫惊慌,因为这是MySQL的版本引起的。
解决方法:
UNIQUE INDEX `phone` (`phone`) USING BTREE ,
UNIQUE INDEX `inviteCode` (`inviteCode`) USING BTREE
改成:
UNIQUE INDEX `phone` USING BTREE(`phone`) ,
UNIQUE INDEX `inviteCode` USING BTREE (`inviteCode`)
如果改了之后还不起作用,则需要查看你的MySQL版本了,通过命令select version(); 查看,我的MySQL版本为 4.0.27经典版的, 所以,使用以上的方法还不能解决问题,所以,就要用最原始的方法,去掉USING BTREE关键字,并且SQL语句里边不能有字段注释comments,所以,低版本MySQL的语句为下面这样的:
mysql> select version();
+-----------+
| version() |
+-----------+
| 4.0.27 |
+-----------+
1 row in set (0.12 sec)
Mysql 低版本语句:
CREATE TABLE `message_info_tbl` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`phone` varchar(12) NULL DEFAULT NULL ,
`code` varchar(20) NOT NULL DEFAULT '' ,
`ip` varchar(36) NOT NULL DEFAULT '' ,
`used_state` enum('yes','no') NOT NULL DEFAULT 'no' ,
`type` enum('find','register') NOT NULL DEFAULT 'register' ,
`client_type` enum('pc','app','wap') NOT NULL DEFAULT 'pc' ,
`create_at` int(10) UNSIGNED NOT NULL DEFAULT 0 ,
PRIMARY KEY (`id`),
INDEX `phone` (`phone`),
INDEX `code` (`code`),
INDEX `used_state` (`used_state`),
INDEX `ip` (`ip`)
)
TYPE=InnoDB
ROW_FORMAT=DYNAMIC
;
OK ,这样就可以解决 USING BTREE错误了~