《Mysql入门Mysql 出现the right syntax to use near USING BTREE错误解决办法》要点: 本文介绍了Mysql入门Mysql 出现the right syntax to use near USING BTREE错误解决办法,希望对您有用。如果有疑问,可以联系我们。
导读:如果MySQL在创建表时,出现the right syntax to use near USING BTREE这样的错误,莫惊慌,因为这是MySQL的版本引起的.
如果MySQL在创建表时,因为这是MySQL的版本引起的.
使用下面的SQL语句创建表:
- CREATE?TABLE?`message_info_tbl`?(?
- ??`id`?int(10)?unsigned?NOT?NULL?AUTO_INCREMENT,?
- ??`phone`?varchar(12)?DEFAULT?NULL?COMMENT?'手机号',?
- ??`code`?varchar(20)?NOT?NULL?COMMENT?'验证码',?
- ??`ip`?varchar(15)?NOT?NULL,?
- ??`create_at`?int(10)?NOT?NULL?COMMENT?'发送时间',?
- ??`used_state`?enum('yes','no')?NOT?NULL?DEFAULT?'no'?COMMENT?'是否使用',?
- ??`type`?enum('find','register')?NOT?NULL?DEFAULT?'register'?COMMENT?'作用类型',?
- ??`client_type`?enum('app','pc','wap')?NOT?NULL?DEFAULT?'pc'?COMMENT?'客户端类型',?
- ??PRIMARY?KEY?(`id`),?
- ??KEY?`phone`?(`phone`)?USING?BTREE,?
- ??KEY?`code`?(`code`)?USING?BTREE,?
- ??KEY?`used_state`?(`used_state`)?USING?BTREE,?
- ??KEY?`ip`?(`ip`)?USING?BTREE,?
- ??KEY?`tl`?(`tl`)?USING?BTREE?
- )?ENGINE=InnoDB??DEFAULT?CHARSET=gbk?COMMENT='信息详情';?
MYSQL应用错误:
?
- PRIMARY?KEY?(`id`),?
- ??KEY?`phone`?(`phone`)?USING?BTREE,?
- ??KEY?`code`?(`code`)?USING?BTREE,?
- ??KEY?`used_state`?(`used_state`)?USING?BTREE,?
- ??KEY?`ip`?(`ip`)?USING?BTREE,?
- ??KEY?`tl`?(`tl`)?USING?BTREE?
- )?ENGINE=InnoDB??DEFAULT?CHARSET=gbk?COMMENT='验证信息';?
- [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?`used_s?
MYSQL应用因为mysql新版本的USING BTREE语法与老版本有些不同(mysql5.14前后)
我们只需要将文件中的形如:
KEY `code` (`code`) USING BTREE
改为
KEY `code` USING BTREE(`code`)
意外:
如果改了之后还不起作用,则需要查看你的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应用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?
- ;?
MYSQL应用
OK,这样就可以解决 USING BTREE错误了~ (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|