You 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>
到此这篇关于You have an error in your SQL syntax; check the manual that corresponds的文章就介绍到这了,更多相关an error in your SQL syntax内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!