(我为我糟糕的英语道歉)
我必须使用
CONSTRAINT CHECK
验证电子邮件,它有点“有效”但根本不起作用,如果我放@hotmail
它会添加邮件,如果我放@1234
它不会添加它,但是如果我输入@hotmail1234
它也添加了电子邮件,我该如何解决?
CREATE TABLE proveedores
(
id_Proveedores INT IDENTITY (1,1),
nit_Cedula INT NOT NULL,
nombre_Proveedor VARCHAR (50) NOT NULL,
correo VARCHAR (50) NOT NULL,
direccion VARCHAR (50) NOT NULL,
telefono VARCHAR (50) NOT NULL,
estado_Proveedor bit NOT NULL DEFAULT 0,
observacion VARCHAR (255),
CONSTRAINT PK_id_Productos PRIMARY KEY (id_Proveedores),
CONSTRAINT UC_proveedores UNIQUE (nit_Cedula, nombre_Proveedor, correo, telefono),
CONSTRAINT CH_cedula_proveedor CHECK (nit_Cedula LIKE '%[0-9]%'),
CONSTRAINT CH_nombre_proveedor CHECK (nombre_Proveedor NOT LIKE '%[^a-zA-Z ]%'),
CONSTRAINT CH_correo_proveedor CHECK (correo like '%@%'+'%[^0-9]%'+'.'),
CONSTRAINT CH_direccion CHECK (direccion LIKE '%[a-zA-Z]%'+'% %'+'[%0-9%] '+'%#[0-9]%')
)
INSERT INTO proveedores (nit_Cedula, nombre_Proveedor, correo, direccion, telefono, observacion)
VALUES (123456, 'Colantasabe' , 'jsdqkas_123jd@hotmail123.' , 'crra 23 #128', '(604)5224864', 'proveedor de xxxxxxx')
这样,即使在 hotmail 末尾有 123,代码也会添加邮件,有什么修复方法吗?
我尝试使用 chatGPT,以及我在互联网上找到的一堆语法变体