在db2的XYZ表中有一个Location列,现在我想更改为不为null并使用以下命令
ALTER表xyz ALTER COLUMN LOCATIONID设置为非空
但是要求提供默认值。如何更改命令
答案 0 :(得分:1)
当您将以前可选的列变成必填列时,如果表中至少已经有一行包含LOCATIONID中的NULL,则Db2可能会阻止更改(SQL0407N)。
如果表中没有行,或者LOCATIONID列中没有行为null,则Db2-LUW将允许进行更改。在某些情况下,您可能需要在更改前后对表进行重新整理。
如果表已经具有LOCATIONID为null的行,则必须在进行更改之前将这些行的LOCATIONID值设置为某些非空值,或者必须重新创建表。
重新创建表时,如果对相关数据有意义,请考虑通过“ NOT NULL WITH DEFAULT ...”指定默认值。