代码之家  ›  专栏  ›  技术社区  ›  Rachcha

如何在包含null值的列上添加非null约束

  •  24
  • Rachcha  · 技术社区  · 13 年前

    我有一个表,其中有一列包含一些空值。我想添加一个 NOT NULL 约束,而不将现有的null更新为非null值。我想保留现有的null值,并检查未来的行中是否包含该列的非null值。这可能吗?怎样

    3 回复  |  直到 13 年前
        1
  •  55
  •   Jeffrey Kemp    13 年前

    您可以添加未验证的约束-它不会查看现有的行,但会检查是否有任何新的或更新的行。

    ALTER TABLE mytable MODIFY mycolumn NOT NULL NOVALIDATE;
    

    请注意,除非满足约束,否则您将无法更新现有行。

    此外,要注意优化器在制定计划时无法利用这一限制的缺点——它必须假设某些行可能仍然有null。

        2
  •  -1
  •   Eric    9 年前

    ALTER TABLE表名称 SET列名称=“0” 其中column_name为NULL;

    ALTER TABLE表名称 修改列(COLUMN_name NUMBER CONSTRAINT CONSTRAINT_identifier NOT NULL);

    当然,这是假设你的列是一个数字,但实际上是一样的,你只需要将“0”更改为一个不为null的默认值。

        3
  •  -1
  •   Hammad    8 年前

    哈马德: 我面对这个问题并解决如下问题:

    更改表thr_empl_info修改thr_EM_DESIGNATION_ID不为空

    推荐文章