mysql關(guān)鍵字 誤用

問題描述

用Spring Boot 的save方法,往數(shù)據(jù)庫的表 topic里保存一條數(shù)據(jù),但報錯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 里面經(jīng)過注釋后只剩一句話topicRepository.save(topic);檢查前端和后端,沒有發(fā)現(xiàn)問題,注解的使用也正確,但不知道為什么會發(fā)生這個問題?

問題解決

  1. 在前端發(fā)請求之前打印發(fā)現(xiàn)可以打印出要傳遞的值,在controller中save之前打印也是可以的,加上錯誤的提示,所以問題斷定是出在了save 這一句上
  2. save的用法也是沒有問題的 ,google 搜索錯誤,網(wǎng)上的答案是說SQL語句出了錯,但我使用的是SpringBoot,沒有手動寫SQL語句,那么問題是哪了?
  3. 在網(wǎng)上看見了保留字一說,難道是我的表中有保留字。仔細(xì)檢查表中的數(shù)據(jù)段,最有可能的就是"order"這個字段。搜索了一下,果然order是mysql 的保留字。
  4. 將order 改為orderNumber 問題解決

反思

  • 設(shè)計時對數(shù)據(jù)庫的保留字不熟悉,使用保留字作為列名
  • 對數(shù)據(jù)庫的常見錯誤不熟悉,看見這樣的錯誤沒有反應(yīng)過來可能是什么樣的錯誤

action

  • 網(wǎng)上查找資料熟悉下mysql 的保留字
  • 了解mysql 使用的常見誤區(qū)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容