导入数据库发生You have an error in your SQL syntax错误解决方法

导入数据库发生You have an error in your SQL syntax错误解决方法

春哥昨天在帮客户迁移数据的过程中,在导入数据的时候发生了一个You have an error in your SQL syntax的错误,相信这个错误大家应该是经常遇到的,那么春哥技术博客今天就分享一下如何解决这个问题。

具体报错:

#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`userid_int`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1' at line 10 

具体执行的sql语句:

CREATE TABLE IF NOT EXISTS  `cj_scenedata` (

 `dataid_bigint` BIGINT( 20 ) NOT NULL AUTO_INCREMENT ,
 `sceneid_bigint` BIGINT( 20 ) NOT NULL DEFAULT  '0',
 `pageid_bigint` BIGINT( 20 ) NOT NULL DEFAULT  '0',
 `elementid_int` INT( 11 ) DEFAULT  '0',
 `elementtitle_varchar` VARCHAR( 50 ) DEFAULT NULL ,
 `elementtype_int` INT( 11 ) NOT NULL DEFAULT  '5',
 `userid_int` INT( 11 ) NOT NULL DEFAULT  '0',
PRIMARY KEY (  `dataid_bigint` ) ,
KEY  `sceneid` (  `sceneid_bigint` ,  `userid_int` ) USING BTREE
) ENGINE = MYISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT =1;

春哥就直接开门见山的说了,具体是因为:数据库版本问题,从MySQL 5.1版本转移到5.0版本,高版本往低版本转移,有些SQL语法不适用的问题啦。那么这个具体的SQL到底是哪一个呢?答案即将揭晓:没错就是USING BTREE这个二货惹的祸,其实也不能怪人家了,谁叫低版本的数据库不支持USING BTREE语法呢。

具体解决方法:

查找SQL文件中所有包含”USING BTREE“的文件,把这段代码提到()前面。春哥给大家举个例子啊,比如这个应该这样修改:

KEY  `sceneid` (  `sceneid_bigint` ,  `userid_int` ) USING BTREE直接改为KEY  `sceneid`  USING BTREE(  `sceneid_bigint` ,  `userid_int` )

这样试试,直接OK,好了春哥教程到此结束。

来源:春哥技术团队,欢迎分享,转载请注明出处。(欢迎加春哥团队客服微信号:taike668)

本文地址:https://www.chungetd.com/jishu/361.html
上一篇:一起看看这十款提高开发效率的php编码      下一篇:春哥教你如何解封被冻结的支付宝