ad2255819

SQL報錯處理教學

發表於 2021-10-17 09:06:34
ad2255819 發表於 2021-10-17 09:06:34 | 顯示全部樓層 |閱讀模式
在架設伺服器的途中
SQL數據屬於很重要的一環
雖然教學通常都教你勾選遇到錯誤繼續
但有時候 會因為這些錯誤導致你缺失數據庫
下面教你怎麼排除一些簡單的錯誤來保全你的數據庫完整

建議準備工具:notepad++ 方便排版

一.USING BTREE錯誤

這種狀況是屬於SQL的版本問題
解決方法如下圖

將USING BTREE字串 從(`xxxxx`)後方移至前方
這是大工程 有些數據庫大量使用了這種字串
請稍微發揮您的耐心 使用ctrl+F把他們全部找出來吧


二.這個錯誤 我突然找不到錯誤的圖片可以貼
所以簡單說一下
當你數據庫匯入完畢(這裡我沒有錯誤訊息可以提供)
發現缺失account資料表
很大的可能是 你的數據庫版本不允許0000-00-00字串
通常是在birthday、tempban
穩妥起見 請發揮ctrl+F 搜尋0000-00-00
將他們改成如下圖的樣子



其他還有兩種 但我自己沒有遇過
但還是補充基本的修改方式
有一種是數據庫本身不支援的編碼
錯誤訊息大概長這樣
[Err] 1115 – Unknown character set: ‘utf8mb4’
進數據庫搜尋 將後段mb4刪掉

還有一種是ENGINE=InnoDB
該情況也是數據庫版本不支援ENGINE這個語法
把它改成如下圖



以上就是我所遇過的SQL錯誤資訊 給大家簡單的排除方法
比較值得一提的是USING BTREE的部分
有些數據庫更改完
會出現類似以下的錯誤
ALTER TABLE buddies
ADD CONSTRAINT buddies_ibfk_1 FOREIGN KEY (characterid) REFERENCES characters (id) ON DELETE CASCADE;
[Err] 1005 – Can’t create table ‘.\maplestory\#sql-86c_3e.frm’ (errno: 150)
[Err] —

關於這個 FOREIGN KEY 的錯誤
沒有什麼簡單的解決方法
我找到的資料是表明 你正在向該資料表添加欄位 但表中不存在匹配的行
請先將該行插入表中
但我試了很多種方法 沒有成功的
如果你有這種錯誤 並解決成功的話也歡迎跟我分享


瀏覽 5260 回復 0

您需要登錄後才可以回帖 登錄 | 註冊會員

返回頂部