我有一个包含几个空值的列的表。我想NOT NULL
在该列上添加一个约束,而不将现有的空值更新为非空值。我想保留现有的空值并检查它们是否包含此列的非空值的未来行。这可能吗?如何?
问问题
58120 次
3 回答
54
您可以添加未经验证的约束 - 它不会查看现有行,但会检查任何新的或更新的行。
ALTER TABLE mytable MODIFY mycolumn NOT NULL NOVALIDATE;
请注意,除非满足约束条件,否则您将无法更新现有行。
此外,请注意优化器在制定计划时将无法利用此约束的缺点——它必须假设某些行可能仍为空值。
于 2013-08-23T05:20:33.777 回答
-1
哈马德:我面临这个问题并解决如下:
更改表 thr_empl_info 修改 THR_EM_DESIGNATION_ID 不为空
于 2018-02-13T11:36:23.717 回答
-1
ALTER TABLE table_name SET column_name = '0' WHERE column_name IS NULL;
ALTER TABLE table_name MODIFY COLUMN(column_name NUMBER CONSTRAINT constraint_identifier NOT NULL);
这当然是假设您的列是一个数字,但实际上是一样的,您只需将“0”更改为不为空的默认值。
于 2017-03-02T18:02:13.267 回答