Ejemplos:
check (id between 1 and 20) : Que el id solo pueda tomar valores entre 1 y 20
check (turno in ('Mañanas','Tardes')): Que el campo turno solo pueda tomar valores Mañanas o Tardes.
Ejemplo práctico POSTGRESQL:
#Creamos una tabla
postgres=# create table prucheck(
postgres(# id bigint,
postgres(# nombre varchar(20),
postgres(# check (id between 1 and 20),
postgres(# check (nombre in ('Lunes','Martes')));
CREATE TABLE
Probamos a insertar valores válidos
postgres=# insert into prucheck (id, nombre) values (1,'Lunes');
INSERT 29781 1
Probamos a insertar valores no válidos
postgres=# insert into prucheck (id, nombre) values (21,'Martes');
ERROR: el nuevo registro para la relación "prucheck" viola la restricción check "$1"
Ejemplo práctico MYSQL:
CREATE TABLE `tablacheck3` (
`id` INT NOT NULL,
`semana` VARCHAR(20) NOT NULL,
check (id between 1 and 20),
check (semana in ('Lunes','Martes'))
)
ENGINE = myisam;
PERO NO FUNCIONA EL CHECK--> deja insertar valores que no cumplen la restricción.
INSERT INTO `tablacheck3` ( `id` , `semana` )
VALUES (
'1', '''Lunes'''
), ( '221', '''hola'''
);ANOTACIÓN: Esta probado bajo myisam, posiblemente con innodb si que se cumpla la restricción.
En MySQL no es soportado el check es por eso que te dejara ingresar los parámetros aun que no cumplan la función
ResponderEliminar