使Oracle表列可为空,并将默认值设置为NULL

时间:2019-03-18 11:00:18

标签: sql oracle

我想将NOT NULL列设置为可为空,并且还将默认值设置为NULL

我尝试过:

alter table T_FUNCIO modify (VALIDATED NULL DEFAULT NULL);
alter table T_FUNCIO modify VALIDATED NULL DEFAULT NULL;

但是这两个作品都不是

3 个答案:

答案 0 :(得分:0)

语法有点违反直觉:

alter table T_FUNCIO modify (VALIDATED NULL)

Here是db <>小提琴。

答案 1 :(得分:0)

您可以尝试

ALTER TABLE T_FUNCIO
MODIFY VALIDATED int DEFAULT NULL

答案 2 :(得分:0)

您对子句的理解是错误的。 From the syntax diagramsDEFAULT ...子句位于内嵌约束的之前。因此,您可以这样做:

alter table T_FUNCIO modify VALIDATED DEFAULT NULL NULL;

但是请注意,如果该列已经可以为空,那么在创建表时未指定该列(这是默认值,当然是默认值为null),这是默认值,那么它仍将抛出“ ORA-01451:column要修改为NULL不能修改为NULL”。您说您的专栏目前为NOT NULL,所以应该没问题。

Quick db<>fiddle demo