前陣子有客戶自行在mysql多加了幾個欄位
結果新增資料時,出現了一個錯誤訊息:
「Field '欄位' doesn't have a default value」
問題是發生在insert的語法沒有包括這個欄位,
而這個欄位又設為不允許為null
但在不同機器上,又有些可以跑
爬文之後,
發現問題點在於有些機器的mysql設定了
STRICT_TRANS_TABLES
sql-mode="
STRICT_TRANS_TABLES,..."
把
STRICT_TRANS_TABLES拿掉就ok了
下SHOW VARIABLES查詢的結果:
centos5.6
mysql: 5.0.77
sql_mode=沒東西
winxp
appserv5.2.10,mysql: 5.0.51b-community-nt-log
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
server2008
mysql: 5.5.28