MySQL更改列默认为不为null

时间:2017-01-27 21:22:07

标签: mysql

ALTER TABLE `pages` MODIFY `views` INT(11) NOT NULL DEFAULT 0

尝试更改当前允许NULL且没有默认值的表中的列。

我希望它为NOT NULL,默认为0

我得到的错误信息是

  

无效使用NULL值

1 个答案:

答案 0 :(得分:6)

这是因为该表已经有一行或多行具有空值,您可能需要在执行ALTER表之前将它们更新为0,例如:

UPDATE test SET views = 0 WHERE views IS NULL;
ALTER TABLE test MODIFY COLUMN views int NOT NULL DEFAULT 0;

SQL Fiddle (注释掉update语句会导致同样的错误。)