我正在尝试在 postgresql 中创建条件检查约束。当 a_type 为 'a' 时,我希望 b 仅包含数字。当 a_type 不是 'a' 时,我希望 b 包含任何字符。我将如何做到这一点?我现在有这个:
编辑: 我认为这应该有效。
CONSTRAINT test CHECK (a_type <> 'a' AND b ~* '^.$') OR (a_type = 'a' AND b ~* '^[0-9]+$')
最佳答案
当 a_type <> 'a'
时,您不必使用正则表达式:
check (a_type <> 'a' or a_type = 'a' and b ~* '^[0-9]+$')
关于sql - 带有正则表达式的 Postgresql 中的条件检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47603242/