小编Che*_*tar的帖子

PostgreSQL:NOT VALID 约束与验证触发器

我有一个带有“货币”列的表。我想阻止进一步插入某些货币,而不删除现有货币。

最初我正在考虑验证触发器。

然后我发现了NOT VALID的选项ALTER TABLE ADD CONSTRAINT,它阻止了现有数据的验证。

该文档似乎暗示该NOT VALID选项主要是出于性能原因,允许用户将验证推迟到以后。但没有任何地方明确表示它不能用于保留旧(无效)数据。

这篇文章中,该人说:“您甚至可以将约束保留在某种NOT VALID状态中,因为这更好地反映了它的实际作用:检查新行,但不对现有数据提供保证。检查约束没有任何问题NOT VALID

那么,该NOT VALID选项可以用于此目的吗?或者制作一个验证触发器会更好吗?

postgresql database-design constraints database-trigger

11
推荐指数
1
解决办法
1万
查看次数