0

当我尝试添加此列时:

更改表 APL 添加代码 NUMERIC(2) NOT NULL

我收到此错误:

ALTER TABLE 'APL' 失败。需要默认子句才能添加非 NULL 列“CODE”。

我知道我可以添加一个默认值并且它会起作用,但是我不想在这个列中使用默认值,我读到并且听说有一种方法可以在没有默认值的情况下添加列。
有谁知道怎么做?


编辑:
我会更多地解释我的情况。
该列被错误地创建为 NULL(我不知道为什么),并且它是主键的一部分(幸运的是我没有重复),所以我必须将其更改为 NOT NULL ,以便我可以分配它。
它确实是一个旧专栏,我不知道应该添加什么样的默认值,因为如果我添加错误的值,应用程序可能会导致问题。

4

2 回答 2

3

我发现这个查询适合我,对我来说似乎很好。以前有人试过吗?
我将该列添加为 NULL ,然后将其修改为非空。


alter table TEST_EMPLOYEE ADD COMP_CODE NUMERIC(4) NULL
alter table TEST_EMPLOYEE MODIFY COMP_CODE NUMERIC(4) NOT NULL

于 2013-05-31T07:18:34.687 回答
2

如果你想想你的要求是不可能的。

您想指定“NOT NULL”,它告诉数据库每一行都必须有该列的值,如果您为现有行中的列提供默认值,数据库很乐意这样做。

但是您不想提供默认值,那么数据库应该如何在现有行中使列“NOT NULL”?

于 2013-05-31T06:53:25.090 回答