关于在mysql中使用usage作字段名所遇到的问题

    数据库是从oracle中直接导进mysql的,项目运行时,后台报以下错误:

 

### 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 'usage'
因为我的映射文件mapper.xml是使用mybatis反向生成的,即SQL语句不是我手写的,而是MyBatis的插件生成的,现如今,却报SQL语句有语法错误,我就郁闷了,系统自动生成的SQL语句居然也有错误的?带着这样的疑问,我仔细检查SQL语句:
 
 insert into YTJ3006_1 ( ID, ARCHIVEID, VISITDATE, VISITSTYLE, PATIENTTYPE, TJQK, NYQK, SYSMPSIGNS, USAGE, YPJX, SUPERVISOR, SINGLEHOME, VENTILATE, SMOKE, DRINK, GETMEDICINEADDR, GETMEDICINEDATE, FWJLK, YWFFJYPCF, FJHZLLC, BGLFWWH, FYHBLFYJCL, ZLQJFZCT, WCQJRHJCFY, SHXGJZYSX, MQJCZJC, NEXTVISITDATE, YFSCS, SJFSCS, YFYCS, SJFYCS, FYL, CLOSESTATUS, DATARESTYPE, SSUPPLIERCODE, CREATED_BY, CREATED_DATE, DUNS, SMACHINECODE, SMOKE_TARGET, DRINK_TARGET ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) 

   看来看去,也没发现有什么问题,后来我依照后台提示的信息把usage字段注释掉,就可以执行成功了,后来了解       到,原来usage是mysql的关键字,mysql是不允许在表中用它的关键字来作字段名的,在ORACLE上不会出现这个      问题,是因为usage并非ORACLE的关键字。

 

   当然mysql也不只usage这个关键字,也称保留字,还有很多,在建表时,要慎用这些关键字,少触雷区。

 下面这个链接写得齐全,需要的可以去参考下:https://www.cnblogs.com/Z-Fanghan/p/6892944.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值