今天項目的數據庫更新時曝出如此錯誤。檢查發現一個類似如下的語句出現錯誤:
語句:
ALTER TABLE `ATable` CHANGE COLUMN `Atxt` `Btxt` DECIMAL(18,6) NOT NULL DEFAULT 0;
錯誤:
ERROR 1138 (22004) at line 7: Invalid use of NULL value
原因:
NOT NULL DEFAULT 0 ,表示不爲空,默認賦值0,但想修改的表單中存在爲null的值
解決方案:
UPDATE ATable SET Btxt= 0 WHERE Btxt IS NULL;
之後再執行所需執行的SQL語句即可。