MySql Field '*' doesn't have a default value問題
阿新 • • 發佈:2018-04-03
根據 text bsp 延伸 沒有 not OS 報錯信息 pos
1、問題:
寫了個註冊頁面,在本地服務器沒有報錯,上傳到空間之後出現了這個問題。
字面上來看是某個字段沒有設置默認值。
根據提示找到這條sql語句 `integral` varchar(225) NOT NULL ,這裏只設置了非空,並沒有設置默認值,可以設置默認值來排除錯誤在後面加上 DEFAULT ‘ 想要的值‘,就可以了
當然,也可以在進行數據庫操作的時候順便插入該值,也能達到相同效果。
2、思考:
為什麽在本地進行數據庫操作的時候就不報錯呢,檢查數據庫,相關字段下面的確沒有賦值。查了一下,應該是MySql 5.0以上版本都默認是Strict Mode
Strict Mode:
1) 不支持對not null字段插入null值
2) 不支持對自增長字段插入‘‘值,可插入null值
3) 不支持 text 字段有默認值
關閉方法:
找到MySQL目錄下的my.ini
將sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
修改為sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
重新啟動 Mysql服務
3、延伸:
有幾種情況同樣也可能產生同樣的報錯信息
(1) id 作為主鍵,int類型,未設置 auto_increament
(2) 少字段
MySql Field '*' doesn't have a default value問題