无法删除Oracle中的默认约束

Mas*_*aik 3 sql oracle

SQL> ALTER TABLE CUSTOMERS MODIFY AGE INT DEFAULT 10;
Run Code Online (Sandbox Code Playgroud)

表改变了.

SQL > ALTER TABLE CUSTOMERS ALTER COLUMN AGE DROP DEFAULT;

ERROR at line 2:
ORA - 01735 : invalid ALTER TABLE OPTION.
Run Code Online (Sandbox Code Playgroud)

JSa*_*ota 6

您的ALTER陈述是错误的,您不能ALTER在一个语句中使用两个命令.我们永远不会删除默认值,而是将其设置为NULL.

如果列具有默认值,则可以使用DEFAULT子句将默认值更改为NULL,但不能完全删除默认值.如果列已分配了默认值,则USER_TAB_COLUMNS数据字典视图的DATA_DEFAULT列将始终显示默认值或NULL.

更改表

使用以下SQL命令删除默认值.

ALTER TABLE constomers MODIFY age DEFAULT NULL;
Run Code Online (Sandbox Code Playgroud)

  • 但根据下面的链接我们可以删除默认约束。http://www.w3schools.com/sql/sql_default.asp (3认同)
  • @MasudShaik:众所周知,w3schools充满了错误.如果您想获得正确的语法,您应该依赖手册,而不是互联网上的一些随机发现 (2认同)