mysql检查特殊组合

cuxqih21  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(451)

嗨,我试图检查一个特殊的九个字符的组合,但我认为我做得很好,但它失败了,当我尝试插入例如dni 12345678a。我的表达式是dni,必须由8个数字和一个字母组成,除了i,ñ, o、 这是我的密码:

CREATE TABLE PERSONAS 
    (
    dni CHAR(9) ,
    id INT NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY,
    nombre varchar(50) NOT NULL,
    apellido1 varchar(50) NOT NULL,
    telefono CHAR(9),
    CONSTRAINT chk_tel CHECK (telefono not like '%[^0-9]%'),
    CONSTRAINT chk_dni CHECK (dni LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][A-H]' or '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][J-N]' 
    or '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][P-T]' or '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][V-Z]'),

);
mkshixfv

mkshixfv1#

你的问题被标记为mysql。在该数据库中,使用正则表达式:

CONSTRAINT chk_dni CHECK (dni REGEXP '^[0-9]{8}[^IÑOU]$')

这是一把小提琴。

相关问题