ALTER TABLE `pages` MODIFY `views` INT(11) NOT NULL DEFAULT 0
尝试更改当前允许NULL且没有默认值的表中的列。
我希望它为NOT NULL
,默认为0
。
我得到的错误信息是
无效使用NULL值
答案 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
语句会导致同样的错误。)