小编典典

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

sql

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


阅读 209

收藏
2021-03-23

共1个答案

小编典典

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

ALTER TABLE mytable MODIFY mycolumn NOT NULL NOVALIDATE;

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

另外,请注意,不利之处在于,优化器在制定计划时将无法利用此约束-它必须假设某些行可能仍为null。

2021-03-23