您的位置:首页 > 数据库 > MySQL

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

2018-01-23 17:42 555 查看
    数据库是从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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: