sql - 向电话号码列添加 2 个约束
问题描述
我需要向现有表添加一个约束,以便电话号码只能是 10 位手机号码或 8 位固定电话号码(没有空格或区号)。
这是我尝试过的代码:
ALTER TABLE people
ADD CONSTRAINT digit_phoneno_8_10
CHECK (phoneno ~ '^[0-9]{8,10}$');
这允许 9 位数的电话号码,我想排除它。
解决方案
要精确n
数字或精确m
数字,您需要使用交替|
运算符:
ALTER TABLE people
ADD CONSTRAINT digit_phoneno_8_10
CHECK (phoneno ~ '^(\d{8}|\d{10})$');
推荐阅读
- css - 使用 Liquid 语法的 Shopify SCSS 无法转换为 CSS
- amazon-web-services - 验证我的登录凭据是否正确的 aws 命令是什么?aws-cli 的又名 whoami
- ios - SCNAction 导致场景工具包渲染器崩溃
- python - 从 PHP 运行 Python 脚本但它不工作
- python - 在梯度下降实现中进行更新时遇到问题?
- class - 我应该在 Delphi 中对所有字段的析构函数进行析构函数调用吗?
- python - Instagram 不返回页面源
- php - 使用 PHP 从特定 URL 中提取所有图库图像
- java - 如何将单个 RecyclreView 适配器用于多个布局 java?
- java - 为什么我的代码没有运行也没有提示我输入?