我正在尝试将一列添加到字段为空的表中,既不是“0”也不是“null”。
"ALTER TABLE `mytable` ADD COLUMN `newcolumn` INT NOT NULL"
使所有字段为“0”。我也尝试DEFAULT=''
了选项,但是该列甚至没有添加。那么如何实现真正的空白字段呢?
你不能。
INTEGER 列的唯一有效值是数字和 NULL。您不能简单地定义DEFAULT ''
,因为''
它已经是一个空字符串。
ALTER TABLE `mytable` ADD COLUMN `newcolumn` INT DEFAULT 0
您正在添加一个 INT 字段。它可能是 NULL 或 0,但它不能是空字符串,因为那是一个字符串,而不是一个数字。
您已指定NOT NULL
. 这意味着字段不能为空,即为空。
如果您想要“真正空白”的字段,则将列规范更改为:
"ALTER TABLE `mytable` ADD COLUMN `newcolumn` INT NULL"
刚刚测试过这个并且可以工作。
ALTER TABLE `__test` ADD `test_column` INT NULL
我试试这段代码:
create table test( a int )
insert into test(a) values (1),(2),(3)
ALTER TABLE test ADD b INT NOT NULL DEFAULT 0