mysql关键字 误用

问题描述

用Spring Boot 的save方法,往数据库的表 topic里保存一条数据,但报错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

矛盾点

controller 里面经过注释后只剩一句话topicRepository.save(topic);检查前端和后端,没有发现问题,注解的使用也正确,但不知道为什么会发生这个问题?

问题解决

  1. 在前端发请求之前打印发现可以打印出要传递的值,在controller中save之前打印也是可以的,加上错误的提示,所以问题断定是出在了save 这一句上
  2. save的用法也是没有问题的 ,google 搜索错误,网上的答案是说SQL语句出了错,但我使用的是SpringBoot,没有手动写SQL语句,那么问题是哪了?
  3. 在网上看见了保留字一说,难道是我的表中有保留字。仔细检查表中的数据段,最有可能的就是"order"这个字段。搜索了一下,果然order是mysql 的保留字。
  4. 将order 改为orderNumber 问题解决

反思

  • 设计时对数据库的保留字不熟悉,使用保留字作为列名
  • 对数据库的常见错误不熟悉,看见这样的错误没有反应过来可能是什么样的错误

action

  • 网上查找资料熟悉下mysql 的保留字
  • 了解mysql 使用的常见误区
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容