加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql入门Mysql 出现the right syntax to use near USING BTREE

发布时间:2020-12-12 00:49:11 所属栏目:MySql教程 来源:网络整理
导读:《Mysql入门Mysql 出现the right syntax to use near USING BTREE错误解决办法》要点: 本文介绍了Mysql入门Mysql 出现the right syntax to use near USING BTREE错误解决办法,希望对您有用。如果有疑问,可以联系我们。 导读:如果MySQL在创建表时,出现the

《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语句创建表:

  1. CREATE?TABLE?`message_info_tbl`?(?
  2. ??`id`?int(10)?unsigned?NOT?NULL?AUTO_INCREMENT,?
  3. ??`phone`?varchar(12)?DEFAULT?NULL?COMMENT?'手机号',?
  4. ??`code`?varchar(20)?NOT?NULL?COMMENT?'验证码',?
  5. ??`ip`?varchar(15)?NOT?NULL,?
  6. ??`create_at`?int(10)?NOT?NULL?COMMENT?'发送时间',?
  7. ??`used_state`?enum('yes','no')?NOT?NULL?DEFAULT?'no'?COMMENT?'是否使用',?
  8. ??`type`?enum('find','register')?NOT?NULL?DEFAULT?'register'?COMMENT?'作用类型',?
  9. ??`client_type`?enum('app','pc','wap')?NOT?NULL?DEFAULT?'pc'?COMMENT?'客户端类型',?
  10. ??PRIMARY?KEY?(`id`),?
  11. ??KEY?`phone`?(`phone`)?USING?BTREE,?
  12. ??KEY?`code`?(`code`)?USING?BTREE,?
  13. ??KEY?`used_state`?(`used_state`)?USING?BTREE,?
  14. ??KEY?`ip`?(`ip`)?USING?BTREE,?
  15. ??KEY?`tl`?(`tl`)?USING?BTREE?
  16. )?ENGINE=InnoDB??DEFAULT?CHARSET=gbk?COMMENT='信息详情';?

MYSQL应用错误:
?

  1. PRIMARY?KEY?(`id`),?
  2. ??KEY?`phone`?(`phone`)?USING?BTREE,?
  3. ??KEY?`code`?(`code`)?USING?BTREE,?
  4. ??KEY?`used_state`?(`used_state`)?USING?BTREE,?
  5. ??KEY?`ip`?(`ip`)?USING?BTREE,?
  6. ??KEY?`tl`?(`tl`)?USING?BTREE?
  7. )?ENGINE=InnoDB??DEFAULT?CHARSET=gbk?COMMENT='验证信息';?
  8. [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,?
  9. ??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的语句为下面这样的:
?

  1. mysql>?select?version();??
  2. +-----------+??
  3. |?version()?|??
  4. +-----------+??
  5. |?4.0.27?|??
  6. +-----------+??
  7. 1?row?in?set?(0.12?sec)??

MYSQL应用Mysql 低版本语句:

?

  1. CREATE?TABLE?`message_info_tbl`?(?
  2. `id`??int(10)?UNSIGNED?NOT?NULL?AUTO_INCREMENT?,?
  3. `phone`??varchar(12)?NULL?DEFAULT?NULL?,?
  4. `code`??varchar(20)?NOT?NULL?DEFAULT?''?,?
  5. `ip`??varchar(36)?NOT?NULL?DEFAULT?''?,?
  6. `used_state`??enum('yes','no')?NOT?NULL?DEFAULT?'no'?,?
  7. `type`??enum('find','register')?NOT?NULL?DEFAULT?'register'?,?
  8. `client_type`??enum('pc','app','wap')?NOT?NULL?DEFAULT?'pc'?,?
  9. `create_at`??int(10)?UNSIGNED?NOT?NULL?DEFAULT?0?,?
  10. PRIMARY?KEY?(`id`),?
  11. INDEX?`phone`?(`phone`),?
  12. INDEX?`code`?(`code`),?
  13. INDEX?`used_state`?(`used_state`),?
  14. INDEX?`ip`?(`ip`)?
  15. )?
  16. TYPE=InnoDB?
  17. ROW_FORMAT=DYNAMIC?
  18. ;?

MYSQL应用
OK,这样就可以解决 USING BTREE错误了~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读