MySQL 表名与MySQL关键字冲突导致插入数据BadSqlGrammarException
背景:公司要求把亚马逊订单数据导入数据库,我在MySQL上创建了一个order表,后端使用mybatis plus插入数据时报错。
发现问题:
错误信息:
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: java.sql.SQLSyntaxErrorException: 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 'order ( amazon_order_id,
seller_order_id,
purchase_date,
last_update_date,
orde' at line 1
### The error may exist in com/sifan/erp/mapper/OrderMapper.java (best guess)
### The error may involve com.sifan.erp.mapper.OrderMapper.insert-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO order ( amazon_order_id, seller_order_id, purchase_date, last_update_date, order_status, fulfillment_channel, sales_channel, ship_service_level, order_total, number_of_items_shipped, number_of_items_unshipped, payment_method, payment_method_details, marketplace_id, shipment_service_level_category, order_type, earliest_ship_date, latest_ship_date, is_business_order, is_prime, is_premium_order, is_global_express_enabled, is_replacement_order, is_sold_by_ab, is_ispu, is_access_point_order, shipping_address, buyer_info ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
### Cause: java.sql.SQLSyntaxErrorException: 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 'order ( amazon_order_id,
数据都没问题怎么会sql语法错误呢。
排查问题:
使用navicat执行一下sql语句,还是一样的错误
插入address表看看,能插入进去
然后我发现一个问题:order表显示是蓝色的,而address表是黑色的
insert into order(amazon_order_id, seller_order_id) values('114-1890894-9755', '114-1890894-9755');insert into address(state_or_region,country_code) values('狗子','广州');
很明显看出来,颜色不对。
解决问题:
把order表名改为orders,插入成功。建议不要使用关键字和保留字作为表名或者列名。
出错原因:order为MySQL的关键字,是不能作为表名的。
MYSQL关键字和保留字有哪些请看官网:MySQL :: MySQL 5.7 Reference Manual :: 9.3 Keywords and Reserved Words
MySQL 表名与MySQL关键字冲突导致插入数据BadSqlGrammarException相关推荐
- 易语言mysql表新增防止重复_sqlite数据库 大量插入数据时如何避免重复插入(易语言,做好用sql语句写下)...
就是你在建数据表的时候就用上面的代码写到表里面,以后直接插入就行了啊 看来你还是不懂.. 给你个样例吧.. 源码如下;测试成功 .版本 2 .支持库 sqlite3 .支持库 spec .子程序 _ ...
- MySQL表名后接t_mysql表名忽略大小写
MYSQL表名忽略大小写 问题描述: 一开发同事在linux下调一个程序老是报错说找不到表,但是登陆mysql,show tables查看明明是已经创建了这张表的!!如下: 这张表明明存在,为什么程序 ...
- MySQL表名的大小写敏感设定
MySQL的Table名大小写敏感是使用lower_case_table_names进行的控制,由于版本和安装的OS不同导致缺省动作不同,所以会产生此问题. 问题描述 MacOS上安装的MySQL,目 ...
- 解决(springboot项目)mysql表名大写,造成jpa Table doesn‘t exist问题
解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题 参考文章: (1)解决(springboot项目)mysql表名大写,造成jpa Table ...
- mysql表名忽略大小写
安装完数据库,建表查询发现表不存在,原来是表名大小写写错了,原来Linux下的MySQL默认是区分表名大小写的,这样的话对变成灰带来很大的不变,如何才能使mysql表名不区分大小写呢? 通过如下设置, ...
- linux如何把mysql表名换成小写_让 MySQL 在 Linux 下表名不区分大小写(实为表名全小写)...
把 Windows 下的应用部署到 Linux 下,使用到了 Quartz 集群的特性,所以建了 MySql 的中间表,一启动看到报错: Invocation of init method faile ...
- mysql表名能大写么_MySQL中表名大小写问题
在设计数据表时,有自己特有的规则:英文单词的首字母大写,比如表名User, Article, UserRole, 等等,这种办法使用得很顺手习惯,在以往使用的MS SQL Server.MS Acce ...
- mysql 表名是否区分大小写
mysql 表名是否区分大小写和 mysql server 部署所在的操作系统有关. 在 linux 上是区分大小写的 在 windows 上是不区分大小写的 需要注意的是, 上面提到的操作系统是 m ...
- mysql 表名和和数据库函数名称冲突的解决方法
解决核心:在表名上加上单引号.比如show->'show',在mybatis中不可直接加' '要用到转义字符. 好久没写blog了,今天刚考完网络后面还有一大段时间没考试可以学点技术了.但是,今 ...
最新文章
- AI时代的中层支柱:统计学
- erlang四种启动监控策略
- phpStorm打开提示 failed to create JVM 的解决的方法
- python po设计模式_(Python)PO设计模式
- WPF使用Animation仿WeChat(微信)播放语音消息
- mysql 插入加锁_Mysql加锁过程详解(9)-innodb下的记录锁,间隙锁,next-key锁
- Redis面试复习大纲在手面试不慌,内含福利
- redisTemplate.opsForValue()中方法讲解
- 关于VS.NET RSACryptoServiceProvider的疑惑
- logging模块介绍
- 直连网线和交叉网线的线序
- 利用ISA防火墙发布邮件服务器并部署OWA访问
- 世界最大最高摩天轮,迪拜之眼迎来首批游客
- JVM之运行时栈帧的结构(基于《深入理解Java虚拟机》之第八章虚拟机字节码执行引擎)(上)
- common-pool2的介绍和使用
- 亲爱的,60句感人歌词,有没有一句触动了你
- FPGA学习-Verilog例化说明
- spreadsheetControl
- ARM NEON寄存器
- 杭电oj 1002 C语言解法
热门文章
- vue 获取安卓原生方法_vue与原生app的对接交互的方法(混合开发)
- 上海著名综合性商厦一览 (1)
- 金仓数据库KingbaseES 迁移工具—PL/SQL中Oracle和KingbaseES 的对比
- Unity_塔防游戏按波产生怪(协程实现)_064
- 使用JDBC连接数据库的几种方法
- 计算机算法-线性寻找第k小(大)元素(Top K)BFPRT算法
- 推荐Linux性能分析的一篇论文和两本书
- 树莓派基础实验31:MPU6050陀螺仪加速度传感器实验
- php框架 postgresql,CodeIgniter框架中使用PostgreSQL的配置
- Macfee 卸载过程