即使数据与之对应,也违反了检查约束

Check constraint is violated even though the data is corresponding with it

我刚开始学习MySQL。所以我使用 datagrip 并使用此查询创建 table:

CREATE TABLE customer
(
    customerid CHAR(5) NOT NULL,
    PRIMARY KEY (customerid),
    CONSTRAINT cekcustomerid CHECK ( customerid LIKE 'CU[0-9][0-9][0-9]')
);

然后我用

添加了数据
INSERT INTO customer
VALUE ('CU001');

[2021-05-09 21:10:28] [HY000][3819] Check constraint 'cekcustomerid' is violated.

我输入的数据符合检查约束条件。谁能告诉我我做错了什么?

您使用的 SQL 服务器语法不适用于 MySql。

在 MySql 中 [] 与运算符 LIKE 一起使用时不是通配符。

您可以使用 REGEXP:

CREATE TABLE customer
(
    customerid CHAR(5) NOT NULL,
    PRIMARY KEY (customerid),
    CONSTRAINT cekcustomerid CHECK (customerid REGEXP '^CU[0-9]{3}$')
);

参见demo