低级sql语法错误: BadSqlGrammarException
SQL 语法错误 低级
2023-09-14 08:57:00 时间
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:760) at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:747) at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) at com.lk.ActivemqApplication.main(ActivemqApplication.java:12) Caused by: org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'AS SELECT queue_message_entity WHERE `insert_time` < '1970-01-01 08:00:55'' at line 1 ### The error may exist in com/lk/loms/mq/service/dao/mapper/HistoryMsgMapper.java (best guess) ### The error may involve com.lk.loms.mq.service.dao.mapper.HistoryMsgMapper.insertQueueBackup-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO queue_message_entity_bak AS SELECT queue_message_entity WHERE `insert_time` < ? ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'AS SELECT queue_message_entity WHERE `insert_time` < '1970-01-01 08:00:55'' at line 1 ; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'AS SELECT queue_message_entity WHERE `insert_time` < '1970-01-01 08:00:55'' at line 1 at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446) at com.sun.proxy.$Proxy120.selectOne(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:83) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59) at com.sun.proxy.$Proxy121.insertQueueBackup(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.$Proxy123.insertQueueBackup(Unknown Source) at com.lk.BackupCommandLineRunner.insertQueueBackup(BackupCommandLineRunner.java:61) at com.lk.BackupCommandLineRunner.run(BackupCommandLineRunner.java:27) at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:776) ... 6 common frames omitted Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'AS SELECT queue_message_entity WHERE `insert_time` < '1970-01-01 08:00:55'' at line 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) at com.mysql.jdbc.Util.getInstance(Util.java:408) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
其实是很简单的, 下面的语句中多了个as, 不应该的.
INSERT INTO queue_message_entity_bak AS SELECT queue_message_entity WHERE `insert_time` < ?
本来就是简单的sql 语法错误, 还以为是日期格式问题, 搞了几个小时, 也是郁闷了. 原因还是不够细心, 没注意到 BadSqlGrammarException 这个提示.
相关文章
- SQL service基础(四)连接查询、自身连接查询、外连接查询和复合条件连接查询[通俗易懂]
- SQL开发知识:Sql注入原理简介
- ORA-16761: cannot stop SQL Apply ORACLE 报错 故障修复 远程处理
- MySQL操作:执行SQL语句(mysql执行sql语句)
- MySQL 建表SQL精选实例(mysql建表sql)
- MSSQL导出SQL文件的简易方法(mssql导出sql文件)
- 优化Oracle耗时SQL,提升数据库性能(oracle耗时sql)
- MySQL学习笔记:创建表的SQL语句(mysql创建表的sql)
- Oracle数据库如何导入SQL表(oracle导入sql表)
- pl/sql与Oracle PL/SQL集成的ASM技术。(asmoracle)
- Sql Server 2005/2008 SqlCacheDependency查询通知的使用总结
- 安装SQL Server 2012确保数据库安全运行(安装sqlserver2012)
- 科学管理: 利用MSSQL SQL审核工具(sql审核工具mssql)
- 使用SQL Server表格实现数据存储(sqlserver表数据)
- SQL Server:垃圾到极致!(sqlserver真垃圾)
- SQL Server 助力杨淑娟实现事业梦想(sqlserver杨淑娟)
- sql体验SQL Server:本周SQLServer之旅(sqlserver 本周)
- 建立SQL Server环境,实现断言功能(sqlserver有断言)
- SQL Server时间段技术实现分析(sqlserver时间段)
- SQL Server遭遇卡顿危机,如何破解?(sqlserver 卡顿)
- SQL Server中的加读锁实现机制(sqlserver加读锁)
- 优化SQL Server写入效率,助力系统加速(sqlserver写入慢)
- 休息更新:管理SQL Server休息表(sqlserver休息表)
- 便捷高效!Oracle跟踪SQL利器推荐(oracle跟踪sql工具)
- 快速高效导出MySQL数据库到SQL文件(mysql导出sql文件)
- MySQL SQL意义简析(mysql中sql的含义)
- MySQL快捷执行一键执行SQL语句(mysql一键执行sql)
- 深入比较Oracle与SQL的异同(oracle与sql比较)
- Oracle SQL 超越普通,开启新时代(oracle sql大于)
- 解决Oracle SQL乱码问题(oracle sql乱码)
- sqlserver中求字符串中汉字的个数的sql语句
- SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句
- SQLServer数据库实用SQL语句
- Sql学习第一天——SQL练习题(建表/sql语句)
- 关于SQL存储过程入门基础(变量)
- SQL表连接图解