【问题标题】:add column in ORACLE with DEFAULT value and NULLABLE column type在 ORACLE 中添加具有 DEFAULT 值和 NULLABLE 列类型的列
【发布时间】:2017-10-15 18:14:45
【问题描述】:

由于一个非常奇怪的原因,我们最近的部署崩溃了。

alter table eugen add eugencolumn number default 99;

不是将列称为“NOT NULL”会产生如此大的不同吗?我想了解为什么这个查询会产生问题,添加“NOT NULL”约束可以解决它,但是还有其他解决方法吗?如果您不希望该列不为空?

谢谢, 非常感激。

【问题讨论】:

  • 您的部署脚本是如何“崩溃”的?有没有错误?我们不知道您的部署脚本的结构,因为您没有提供该信息,因此诊断问题将非常困难 - 特别是因为我的水晶球正在闪烁! *{;-) 一个演示问题的简单测试脚本将对我们 a) 重新创建问题和 b) 帮助您大有帮助。
  • 暂时忘记部署崩溃。alter table eugen add eugencolumn number default 99 有什么区别;和alter table eugen add eugencolumn number default 99 not null;
  • 一个使用默认值将列创建为可为空,另一个使用默认值创建为不可为空。将默认列添加到可为空的字段是完全有效的 - 请参阅:livesql.oracle.com/apex/livesql/file/…
  • 实际上很多人都记录了当最后没有添加非空值时的性能问题..我试图理解为什么.. :) 非常感谢您的回复:)

标签: sql database oracle plsql


【解决方案1】:

其实你的问题并不清楚。如果你想在修改表结构后将 99 设置为默认值,请执行查询。 更新 eugen set eugencolumn = 99;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多