1. 程式人生 > >MySQL之Field ‘***’doesn’t have a default value錯誤解決辦法

MySQL之Field ‘***’doesn’t have a default value錯誤解決辦法

今天,中國部落格聯盟有博友反饋,zgboke.com 無法提交部落格,當時我正好準備去假日廣場聚會,就匆匆忙忙的提交試了下,發現提交部落格的時候確實報如下錯誤:

MySQL之Field '***'doesn't have a default value錯誤解決辦法

提示 web_pic 不能為空值。很納悶,之前都可以成功提交的,為什麼突然不行了?看了下網上的案例,說是需要修改 MySQL 的配置什麼的,但是目前部落格聯盟是掛在京東雲擎的,資料庫不能修改配置,按理說之前可以正常提交,後面應該也可以才對啊!

由於聚會時間快到了,就先放在一邊了。回到家之後,對比了下網上的類似案例,原來是 web_pic 這個鍵值設定了不為空導致的,也就是在建立表的時候,使用了 not null 屬性。於是進入 mywebsql,登入京東雲擎資料庫,進行了如下操作:

MySQL之Field '***'doesn't have a default value錯誤解決辦法 MySQL之Field '***'doesn't have a default value錯誤解決辦法

提交後,發現可以成功提交了!出現這個錯誤的願意,應該是我最近匯入匯出資料庫太頻繁,create tables 語句出現錯誤導致的。

下面,整理一下網上的相同問題的其他解決辦法,方便出現問題的同學參考:

1、開啟 my.ini,查詢

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

修改為

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

然後重啟 MYSQL

2、MySQL 5 uses a strict mode which needs to be disabled.

In Windows, Goto Start-->Programs-->MySQL->MySQL Instance Config Wizard. Follow through the Reconfigure Instance option-->Detailed Configuration-->Continue Next a few screens. At the bottom under Enable TCP/IP option there is 'Enable Strict Mode'. Deslect this option (no tick). Save changes and MySQL will restart.

3、看看你的資料庫定義的時候是不是把主鍵生成方式設定為 int 的,但是沒有設定為自增的!!或者資料定義的時候設定一個預設值就可以了。