数据库 ·

当 NOT NULL DEFAULT遇到 Invalid use of NULL value

今天项目的数据库更新时曝出如此错误。检查发现一个类似如下的语句出现错误:

语句:

 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语句即可。

参与评论