当我尝试添加此列时:
alter table APL ADD CODE NUMERIC(2)NOT NULL
我收到此错误:
ALTER TABLE' APL'失败。需要使用默认子句才能添加非NULL列“CODE”。
我知道我可以添加默认值并且它会起作用,但我不想在这个coloumn中有一个默认值,我读了,我听说有一种方法可以添加默认的列。
有谁知道怎么样?
编辑:
我会更多地解释我的情况
这个列是错误地创建为NULL(我不知道为什么),它的主键部分(幸运的是我没有重复),所以我必须将它改为NOT NULL,所以我可以分配它。
它的真的是一个旧列,我不知道我应该添加什么样的默认值,因为如果我添加了错误的值,应用程序可能会导致问题。
答案 0 :(得分:3)
我发现这个适合我的查询,对我来说似乎没问题。以前有人试过这个吗? 我将列添加为NULL,然后将其修改为非null。
alter table TEST_EMPLOYEE ADD COMP_CODE NUMERIC(4)NULL
alter table TEST_EMPLOYEE MODIFY COMP_CODE NUMERIC(4)NOT NULL
答案 1 :(得分:2)
如果你认为你的要求是不可能的。
您希望指定“NOT NULL”,它告诉数据库每行必须有一个该列的值,数据库非常乐意为您提供现有行中列的默认值。< / p>
但是你不想提供默认值,那么数据库应该如何使现有行中的列“NOT NULL”?