iT邦幫忙

0

MySQL匯入報錯 err 1292

最近在匯入資料庫時常發生這問題,我使用navicat備份個500MB的資料庫psc檔案,
在要匯入的時候出現這個錯誤,之前資料庫比較小的話我還可以透過將psc檔提取sql
來刪除它value: '0000-00-00'的部分,但是這份壓縮後還有500MB的psc檔提取sql
都會當機...想也知道提取出sql後會是好幾G,要用文字編輯來修改恐怕不太行...
想請教各位前輩,如何讓MySQL在匯入資料庫時忽略這個錯誤,或者更好的解決方案。

1 個回答

2
wiseguy
iT邦超人 1 級 ‧ 2015-02-17 10:10:24
最佳解答

你可以用文字修改器,比如 sed ,將 '0000-00-00' 取代為 null,不過所有的 '0000-00-00' 都會變 null;或者是在匯入時,參數加上 -f 來忽略錯誤,繼續匯入,但該筆資料就會被忽略不匯入了。
所以治本的方法是,要更改你的欄位可以吃 '0000-00-00'。MySQL 的 date 欄位是可以吃 '0000-00-00' 的。因為你沒說你的欄位是什麼格式,也沒說你用什麼 MySQL 版本,所以你得自行查詢你用的版本是否可吃 0000-00-00。

badbayz iT邦新手 4 級 ‧ 2015-02-17 18:49:10 檢舉

資料類型是date、datetime,因為轉成.sql檔案太大,用文字修改器開啟就會當機,匯出資料庫的sql版本為5.1,導入資料庫的sql版本為5.6,目前解決方法是設定sql mode='',以後在慢慢更改資料表內的那些值了...

我要發表回答

立即登入回答