gpt4 book ai didi

postgresql - 触发与检查约束

转载 作者:行者123 更新时间:2023-11-29 11:23:39 24 4
gpt4 key购买 nike

我想在表格上添加字段级验证。有一个名为“account_number”的字段,该字段应始终通过“luhn”检查。我找到了一个名为“luhn_verify”的函数,它似乎可以正常工作(如果您有兴趣,请谷歌搜索)。它返回一个 bool 值。我的问题是:

与检查约束相比,在 PostgreSQL 中使用触发器进行此验证是否有任何主要的性能优势。

附加信息:

  • PostgreSQL 9.1
  • 表目前没有插入触发器,但有更新。

免责声明:

我觉得这个问题可能已经有人回答了,但我似乎找不到明确的答案。如果是这样,请标记为重复并引用原始问题/答案。

对于 dba 董事会来说可能是一个更好的问题。

最佳答案

经验法则是尽可能使用 CHECK 约束。

A CHECK constraint更快,更简单,更便携,需要更少的代码并且更不容易出错。例如,触发器可以很容易地被其他触发器规避。

A TRIGGER is more complicated .当您必须时使用它来满足更复杂的要求。

如果 CHECK 约束对您的情况来说过于严格或导致重新加载转储出现问题,您可以使用 NOT VALID 修饰符作为中间地带(Postgres 9.2+)。并且,可选地,VALIDATE 稍后。见:

关于postgresql - 触发与检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com