Rac*_*cha 21 sql oracle plsql constraints oracle11g
我有一个表,其中包含一些包含一些空值的列.我想NOT NULL
在该列上添加约束,而不将现有的null更新为非null值.我想保留现有的空值,并检查它们包含此列的非空值的未来行.这可能吗?怎么样?
Jef*_*emp 49
您可以添加未经验证的约束 - 它不会查看现有行,但会检查是否有任何新行或更新行.
ALTER TABLE mytable MODIFY mycolumn NOT NULL NOVALIDATE;
Run Code Online (Sandbox Code Playgroud)
请注意,除非满足约束,否则您将无法更新现有行.
此外,请注意优化器在制定计划时无法利用此约束的缺点 - 它必须假设某些行可能仍为空.