Oracle SQL修改列默认值为NULL:(null)与NULL有何区别?如何实现目标?
Oracle SQL移除列默认值问题解答
1. (null)与NULL的区别
在SQL Developer的显示逻辑里,二者有明确差异:
- NULL:代表该列未定义任何默认值,是创建列时未指定
DEFAULT子句的原生状态。 - (null):代表该列被显式设置了
DEFAULT NULL,属于人为定义的默认值(默认值为null),并非原生无默认值的状态。
2. 能否实现目标状态?
可以实现。你之前执行的ALTER TABLE table_name MODIFY column_name DEFAULT NULL是显式给列设置默认值为null,因此会显示为(null)。要彻底移除默认值(回到无默认值的NULL状态),需要使用DROP DEFAULT子句:
ALTER TABLE table_name MODIFY column_name DROP DEFAULT;
执行这条语句后,SQL Developer中该列的data_default就会显示为不带括号的NULL,也就是你想要的目标状态。
内容的提问来源于stack exchange,提问作者Stamatis Tiniakos
相关产品推荐
相关产品推荐

