如何在 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
摆脱臃肿。
我有一个 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
摆脱臃肿。