【问题标题】:How to insert check constraint for phone number in mysql?如何在mysql中插入电话号码的检查约束?
【发布时间】:2020-12-15 20:56:02
【问题描述】:

我有一张客户表,我希望电话号码具有以下形式“+906924679833”,但每当我插入类似的内容时,我都会收到“违反检查约束”。

CREATE TABLE customer
(
    AFM int(30) not null,
    name varchar(30),
    surname varchar(30),
    phone char(13) not null,
    address varchar(30),
    DOY varchar(4),
    constraint chk_phone check (REGEXP_LIKE(phone, '^\+\d{12}$')),
    PRIMARY KEY(AFM)
);

我要插入以下值

INSERT INTO customer (AFM, name, surname, phone, address, DOY)
VALUES
   (1023452569, 'Charlie', 'Hunnam', '+306943625956', 'California', 'A');

谢谢!!!

【问题讨论】:

  • 无法使用this DB Fiddle中给定的sn-ps进行复制
  • @esqew 我用的是mysql服务器
  • 如果您仔细查看链接的小提琴,我已将 DB 类型设置为 MySQL。
  • '^[+][0-9]{12}$'?
  • @esqew 问题是它运行在 DB Fiddle 而不是我的 mysql 服务器上

标签: mysql regex database constraints


【解决方案1】:

对数字使用更简单的构造[0-9],并以适当的方式转义加号,或者如果有疑问,请将其放入括号表达式中:

'^[+][0-9]{12}$'

【讨论】:

    猜你喜欢
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    相关资源
    最近更新 更多