如何在 NOT NULL 约束上添加新列

How to add a new column on NOT NULL constraint

我有一个 table 请求的 2 列带有 NOT NULL 约束,如下所示

Col1 Col2
Val1 Val2
Val3 Val4

我正在尝试添加一个名为 'Col3'

的新列
ALTER TABLE table
ADD COLUMN Col3 INTEGER NOT null

但是它 returns 一个错误说 'having NULL values in a row' 有什么方法可以使用它吗?

如果新行应该是 NOT NULL,请在列定义中添加一个 DEFAULT 子句:

ALTER TABLE tab
ADD COLUMN Col3 INTEGER NOT null
DEFAULT 0;

或者,省略 NOT NULL,用 UPDATE 填充新列,然后将列更改为 NOT NULL:

ALTER TABLE tab
ALTER col3 SET NOT NULL;

UPDATE 总体上 table 之后,您应该 运行 VACUUM (FULL) tab 摆脱臃肿。