MySQL 5.7升级8.0报异常:处理新增关键字
异常
MySQL 8.0版本相比5.7版本新增和删除了一些关键字,如果原来系统中一些表名或者字段名成为8.0中的关键字的话,系统会报如下异常:
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 ', title from test LIMIT 0, 100'
异常解决
通常我们需要修改下面两种场景来解决这个异常
1、实体Model
在报错的实体Model的相应字段上增加@Column注解,@Column 注解用来标识实体类中属性与数据表中字段的对应关系,注解中的name属性定义了被标注字段在数据库表中所对应字段的名称,nullable属性表示该字段是否可以为 null 值,默认为 true。
需要在报错的字段的name属性的值上即字段名上增加反单引号,这样即使字段名跟新增关键字名称一样,也不会报错了,示例:
@Column(name = "`rank`", nullable = false)
private String rank;
2、手写SQL
在报错的Sql的相应字段上增加反单引号,示例:
Select `rank`, title from test LIMIT 0, 100
MySQL8.0新增关键字列表
=== A</