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

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

【问题讨论】:

    标签: sql oracle default ddl


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2022-01-03
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      相关资源
      最近更新 更多