You have an error in your SQL syntax; check the manual that corresponds解决方法
Hi洛一 人气:0You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
这种错误主要是由于,使用了现在版本的mysql不支持的命令引起的错误,比如
从MYSQL5.5开始,TYPE=MYISAM这种类型的命令无法使用,MYSQL已经替换成ENGINE来代替TYPE,如果出现这种错误,批量替换TYPE= 替换成ENGINE=
还有就是timestamp(14) 不能指定长度~这是时间类型~
一.先看问题
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 "略略略’’
二.弄明白是什么问题
问题的意思是:
您的SQL语法有误。 查看与您的MySQL服务器版本相对应的手册,以在附近使用正确的语法
三.解决问题
找到了问题就是在~~略略略~~那里的语法或者附近上行或下行的语法有问题(也就是near后面的语句)
四.实际问题
找到SQL对应的位置:
找到SQL对应的位置:
CREATE PROCEDURE test_insert ( ) BEGIN DECLARE i INT DEFAULT 1; WHILE i < 100 DO SELECT 123 AS 'name' SET i = i + 1; END WHILE; COMMIT; END;
找到了是near后面的SET i= i+1;
遇到这种问题大概率是分号等标点符号的问题,如果检查了这句确定没有问题,那就,检查他的上一句或者下一句康康语法有没有问题,比如我这个问题就是上一句没有加“;”号,一般来说存储过程每局后面要以分号结束
添加上去
ok 完美解决
补充
错误信息为:
check the manual that corresponds to your MySQL server version for the right syntax
这是之前写的一条 Mysql语句报的 SQL错误,但是仔细检查 SQL语句没有发现有什么异常问题。
他会提示你再Mapper中的哪句sql语句的周围有语法错误
解决方法有两个:
1.在数据库表冲突字段前后加 `符号(Tab键上面那个键),就不会再报语法错误了;
2.修改数据库表中冲突字段名称,修改为和 SQL语句关键字不冲突的其他名称
看了一个小时,发现是自己的列名之间有空格,因为懒得写,复制过来,使用回车是没有影响的
<insert id="insert" useGeneratedKeys="true" keyProperty="uid" > INSERT INTO t_user(username , password , salt , phone , email , gender , avatar ,is_delete , created_user , created_time , modified_user , modified_time ) values ( #{username} , #{password} , #{salt} , #{phone} , #{email} , #{gender} , #{avatar} ,#{isDelete} , #{createdUser} , #{createdTime} , #{modifiedUser} , #{modifiedTime} ) </insert>
加载全部内容