今天项目的数据库更新时曝出如此错误。检查发现一个类似如下的语句出现错误:
语句:
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语句即可。