【发布时间】:2013-08-26 00:27:27
【问题描述】:
我有一个表,其中有一列包含一些空值。我想在该列上添加 NOT NULL 约束,而不将现有的空值更新为非空值。我想保留现有的空值并检查它们是否包含此列的非空值的未来行。这可能吗?怎么样?
【问题讨论】:
-
违反自己的约束似乎有点疯狂。要么是,要么不允许为空。通常,那种,嗯,灵活性是在为您的数据库提供数据的应用程序中设置的,而不是在数据库本身中。做你想做的事,那样就是疯狂。 :)
-
你可以有一个插入/更新触发器来拒绝任何新的空值。但总的来说,这听起来是个坏主意。
-
一点也不疯狂。我有时会在他们想要保留现有(旧)数据但开始检查任何新(或更新)数据的约束的系统中使用它。
标签: sql oracle plsql oracle11g constraints