背景:公司要求把亚马逊订单数据导入数据库,我在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相关推荐

  1. 易语言mysql表新增防止重复_sqlite数据库 大量插入数据时如何避免重复插入(易语言,做好用sql语句写下)...

    就是你在建数据表的时候就用上面的代码写到表里面,以后直接插入就行了啊 看来你还是不懂..  给你个样例吧.. 源码如下;测试成功 .版本 2 .支持库 sqlite3 .支持库 spec .子程序 _ ...

  2. MySQL表名后接t_mysql表名忽略大小写

    MYSQL表名忽略大小写 问题描述: 一开发同事在linux下调一个程序老是报错说找不到表,但是登陆mysql,show tables查看明明是已经创建了这张表的!!如下: 这张表明明存在,为什么程序 ...

  3. MySQL表名的大小写敏感设定

    MySQL的Table名大小写敏感是使用lower_case_table_names进行的控制,由于版本和安装的OS不同导致缺省动作不同,所以会产生此问题. 问题描述 MacOS上安装的MySQL,目 ...

  4. 解决(springboot项目)mysql表名大写,造成jpa Table doesn‘t exist问题

    解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题 参考文章: (1)解决(springboot项目)mysql表名大写,造成jpa Table ...

  5. mysql表名忽略大小写

    安装完数据库,建表查询发现表不存在,原来是表名大小写写错了,原来Linux下的MySQL默认是区分表名大小写的,这样的话对变成灰带来很大的不变,如何才能使mysql表名不区分大小写呢? 通过如下设置, ...

  6. linux如何把mysql表名换成小写_让 MySQL 在 Linux 下表名不区分大小写(实为表名全小写)...

    把 Windows 下的应用部署到 Linux 下,使用到了 Quartz 集群的特性,所以建了 MySql 的中间表,一启动看到报错: Invocation of init method faile ...

  7. mysql表名能大写么_MySQL中表名大小写问题

    在设计数据表时,有自己特有的规则:英文单词的首字母大写,比如表名User, Article, UserRole, 等等,这种办法使用得很顺手习惯,在以往使用的MS SQL Server.MS Acce ...

  8. mysql 表名是否区分大小写

    mysql 表名是否区分大小写和 mysql server 部署所在的操作系统有关. 在 linux 上是区分大小写的 在 windows 上是不区分大小写的 需要注意的是, 上面提到的操作系统是 m ...

  9. mysql 表名和和数据库函数名称冲突的解决方法

    解决核心:在表名上加上单引号.比如show->'show',在mybatis中不可直接加' '要用到转义字符. 好久没写blog了,今天刚考完网络后面还有一大段时间没考试可以学点技术了.但是,今 ...

最新文章

  1. AI时代的中层支柱:统计学
  2. erlang四种启动监控策略
  3. phpStorm打开提示 failed to create JVM 的解决的方法
  4. python po设计模式_(Python)PO设计模式
  5. WPF使用Animation仿WeChat(微信)播放语音消息
  6. mysql 插入加锁_Mysql加锁过程详解(9)-innodb下的记录锁,间隙锁,next-key锁
  7. Redis面试复习大纲在手面试不慌,内含福利
  8. redisTemplate.opsForValue()中方法讲解
  9. 关于VS.NET RSACryptoServiceProvider的疑惑
  10. logging模块介绍
  11. 直连网线和交叉网线的线序
  12. 利用ISA防火墙发布邮件服务器并部署OWA访问
  13. 世界最大最高摩天轮,迪拜之眼迎来首批游客
  14. JVM之运行时栈帧的结构(基于《深入理解Java虚拟机》之第八章虚拟机字节码执行引擎)(上)
  15. common-pool2的介绍和使用
  16. 亲爱的,60句感人歌词,有没有一句触动了你
  17. FPGA学习-Verilog例化说明
  18. spreadsheetControl
  19. ARM NEON寄存器
  20. 杭电oj 1002 C语言解法

热门文章

  1. vue 获取安卓原生方法_vue与原生app的对接交互的方法(混合开发)
  2. 上海著名综合性商厦一览 (1)
  3. 金仓数据库KingbaseES 迁移工具—PL/SQL中Oracle和KingbaseES 的对比
  4. Unity_塔防游戏按波产生怪(协程实现)_064
  5. 使用JDBC连接数据库的几种方法
  6. 计算机算法-线性寻找第k小(大)元素(Top K)BFPRT算法
  7. 推荐Linux性能分析的一篇论文和两本书
  8. 树莓派基础实验31:MPU6050陀螺仪加速度传感器实验
  9. php框架 postgresql,CodeIgniter框架中使用PostgreSQL的配置
  10. Macfee 卸载过程