mysql關(guān)鍵字 誤用

問(wèn)題描述

用Spring Boot 的save方法,往數(shù)據(jù)庫(kù)的表 topic里保存一條數(shù)據(jù),但報(bào)錯(cuò)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

矛盾點(diǎn)

controller 里面經(jīng)過(guò)注釋后只剩一句話topicRepository.save(topic);檢查前端和后端,沒(méi)有發(fā)現(xiàn)問(wèn)題,注解的使用也正確,但不知道為什么會(huì)發(fā)生這個(gè)問(wèn)題?

問(wèn)題解決

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

反思

  • 設(shè)計(jì)時(shí)對(duì)數(shù)據(jù)庫(kù)的保留字不熟悉,使用保留字作為列名
  • 對(duì)數(shù)據(jù)庫(kù)的常見(jiàn)錯(cuò)誤不熟悉,看見(jiàn)這樣的錯(cuò)誤沒(méi)有反應(yīng)過(guò)來(lái)可能是什么樣的錯(cuò)誤

action

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

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

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