關於mysql 出現 1264 Out of range value for column 錯誤的解決辦法

來源:互聯網
上載者:User

標籤:span   啟動   make   post   解決   sql   div   pad   Nid   

今天給客服恢複mysql資料的時候。本來測試好的資料。但是到了客戶那裡卻死活不幹活了。老報錯!

1 INSERT INTO ka_tan4 set num=‘716641385999‘, username=‘admin‘,adddate=‘1353078270‘,rate=‘2‘,sum_m=‘500‘,tjrenid=‘1259‘ 

時出現錯誤:

1 #1264 - Out of range value adjusted for column ‘num‘ at row 1

原因:
新版本的MySQL對欄位的嚴格檢查。 通常在Linux下安裝完mysql後,預設的sql_mode值是空,在這種情形下mysql執行的是一種不嚴格的檢查,如果要插入的欄位長度超過列定義的長度,那麼mysql不會終止操作,而是會自動截斷後面的字元繼續插入操作!但是在windows下面卻不會這樣。而是直接終止報出上面的錯誤!

解決方案(兩種方法任選一種即可):
1、修改my.ini,將

1 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

改為

1 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

重新啟動MySQL。
2、在執行sql語句前,先執行以下語句:
mysql_query("set sql_mode=‘‘");

3.修改mysql資料庫表結構適應資料長度,最好的辦法是修改設定檔。這樣。平台差距就不會太大了!    

經常使用的sql_mode值如下表:

Sql_mode值 描述
ANSI 更改文法和行為,使其更符合標準SQL。
STRICT_TRANS_TABLES 如果不能將給定的值插入到事務表中,則放棄該語句,對於非事務表,如果值出現在單行語句或多行語句的第一行,則放棄該語句。
TRADITIONAL Make mysql的行為像“傳統”SQL資料庫系統。該模式的簡單描述是當在列中插入不正確的值時“給出錯誤而不是警告”。注釋:一旦發現錯誤立即放棄INSERT/UPDATE。如果你使用非事務儲存引擎,這種方式不是你想要的,因為出現錯誤前進行的資料更改不會“滾動”,結果是更新“只進行了一部分”。  

說明:如果把sql_mode的值設定成後面的兩個值(即strict 模式),那麼當在列中插入或更新不正確的值時,mysql將會給出錯誤,並且放棄insert/update操作。在我們的一般應用中建議使用這兩種模式,而不是使用預設的空或ANSI模式。但是需要注意到問題是,如果資料庫運行在strict 模式下,並且你的儲存引擎不支援事務,那麼有資料不一致的風險存在,如:一組sql中有兩個dml語句,如果後面的一個出現了問題,但是前面的已經操作成功,那麼mysql並不能復原前面的操作,因此說設定sql_mode需要應用人員權衡各種得失,從而得到一個合適的選擇  (CSDN)

關於mysql 出現 1264 Out of range value for column 錯誤的解決辦法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.