如何在 ORACLE TABLE 上重置列的默认值

Posted

技术标签:

【中文标题】如何在 ORACLE TABLE 上重置列的默认值【英文标题】:How to reset DEFAULT value on a column On ORACLE TABLE 【发布时间】:2019-07-17 18:44:05 【问题描述】:

我有一个表,其中一列默认设置为 0000,列的数据类型是数字。 我想删除默认值,当保存记录时,null 应该保存在此列上。

【问题讨论】:

【参考方案1】:

您可以将默认设置覆盖为NULL

ALTER TABLE tab_name MODIFY col_name DEFAULT NULL;

db<>fiddle demo


如果列设置为NOT NULL,则:

ALTER TABLE tab_name MODIFY col_name type_name DEFAULT NULL NULL;

db<>fiddle demo2

【讨论】:

@OP 另外,如果您希望它保持一致,请考虑一次性更新以使当前的 0 条记录为空。 @Error_2646 是的,我同意,但这取决于要求。【参考方案2】:

首先,更新当前记录:

update tab set col=null where col=0;

然后移除默认值:

alter tab modify col default null;

【讨论】:

以上是关于如何在 ORACLE TABLE 上重置列的默认值的主要内容,如果未能解决你的问题,请参考以下文章

SQL ALTER TABLE MODIFY 语句

如何使用 Laravel 获取列的默认值?

mat-table重置mat-sort到初始状态

将重置计数器(在列的值更改时重置)添加到视图中的 PLSQL 行

Yii1在迁移中设置DB列的默认值

如何将列的当前值与sql server和Oracle中同一列的先前值进行比较