检查 phone 数字格式的约束

Check constraint for phone number format

我一直收到错误消息:

[2020-01-27 10:37:04] [23000][4025] CONSTRAINT CONSTRAINT_1 failed

当我插入以下行时:

'(01)236-4589'

以下列:

CHECK (phone LIKE '(0[0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]')

请告诉我哪里做错了。

非常感谢您的帮助。

您的代码有问题:

  • 要根据正则表达式检查值,您需要使用 REGEXP 运算符而不是 LIKE
  • 左括号和右括号需要转义(这需要两个反斜杠)

此外,您可以使用量词来避免一次又一次地重复 [0-9]

考虑:

CHECK (phone REGEXP '\(0[0-9]\)[0-9]{3}-[0-9]{4}')

Demo on DB Fiddle