mysql检查特殊组合

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

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

  1. CREATE TABLE PERSONAS
  2. (
  3. dni CHAR(9) ,
  4. id INT NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY,
  5. nombre varchar(50) NOT NULL,
  6. apellido1 varchar(50) NOT NULL,
  7. telefono CHAR(9),
  8. CONSTRAINT chk_tel CHECK (telefono not like '%[^0-9]%'),
  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]'
  10. 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]'),
  11. );
mkshixfv

mkshixfv1#

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

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

这是一把小提琴。

相关问题