MySQL刪除語句的特別注意事項

引出問題

       平時在開發中寫sql語句時。自己總有一個習慣是使用別名,因爲多表聯合查詢時如果不使用別名會很不方便。久而久之就形成在寫SQL語句時使用別名的好習慣。然而某次在寫一個簡單的刪除語句時,出現問題一直報一個錯誤說我的sql語句錯誤,

DELETE FROM ai_models a where a.mcode = 'FL001';這是再簡單不過的sql語句了,怎麼會出錯呢?而且我反覆檢查也沒發現錯誤啊?反覆折騰了好久都沒找到原因,也不知道爲什麼。

解決方法

       既然一種方法不行,那我就換一種方式,先備份數據在全部刪除,結果發現沒問題,可以正常刪除。這時我發現問題出在體檢上面,繼續尋找原因,條件中的字段mcode是肯定存在的,問題絕不會是它造成的,難道是前面的表名縮寫造成的?抱着試一試的態度,我去掉別名重新測試添加條件刪除,測試結果刪除成功。

       至此找到原因,Mysql在執行刪除語句時,表名一定不能添加別名,否則無法刪除。目前還不理解它底層的運行的機制,至少能夠知道如何正確的使用,能夠讓刪除語句不出錯正常執行不出錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章