Introducción
Cuando diseñas una base de datos, una de las primeras metas es impedir que entren valores incoherentes.
Oracle SQL te lo pone fácil con las CHECK constraints: reglas que se ejecutan automáticamente cada vez que insertas o actualizas filas.
En este artículo aprenderás a:
- Qué es un
CHECK
y por qué usarlo. - Añadirlo con
ALTER TABLE
. - Probar que funciona (inserciones válidas e inválidas).
- Buenas prácticas para nombrar y mantener las restricciones.
El ejemplo completo
-- Check del tipo
ALTER TABLE propiedades
ADD CONSTRAINT ck_prop_tipo
CHECK (tipo IN ('V','L','A','T'));
Parte | Significado |
---|---|
ALTER TABLE propiedades | Vamos a modificar la estructura de la tabla PROPIEDADES . |
ADD CONSTRAINT ck_prop_tipo | Creamos una restricción nueva y le damos un nombre descriptivo (ck_… ). |
CHECK (tipo IN ('V','L','A','T')) | Regla: la columna TIPO solo admite los valores 'V' (Vivienda), 'L' (Local), 'A' (Almacén) o 'T' (Trastero). |
1. ¿Por qué es importante un CHECK
?
- Integridad: tus aplicaciones no tienen que recordar los códigos válidos; la BD los valida por ti.
- Mantenimiento: si haces un
UPDATE … SET tipo = 'X'
, Oracle lo bloqueará si el valor no figura en la lista. - Rendimiento: al estar dentro del motor, la comprobación es casi instantánea y se aplica a todas las sesiones.
2. Añadir la restricción paso a paso
- Conéctate a tu esquema desde SQL Developer / TOAD / SQL*Plus.
- Abre un Worksheet y pega el bloque anterior.
- Ejecuta (Ctrl+Enter) → Oracle responde
Table altered.
- ¡Listo! El
CHECK
ya está activo.
3. Pruebas rápidas
-- ✅ Inserción correcta
INSERT INTO propiedades (codigo, descripcion, tipo)
VALUES (101, 'Ático 3ºA', 'V');
-- ❌ Inserción incorrecta
INSERT INTO propiedades (codigo, descripcion, tipo)
VALUES (102, 'Local esquina', 'B'); -- ORA-02290: check constraint violated
Tip: el mensaje
ORA-02290
indica que la fila viola la restricciónCK_PROP_TIPO
.
4. Deshabilitar / habilitar temporalmente
-- Deshabilitar
ALTER TABLE propiedades DISABLE CONSTRAINT ck_prop_tipo;
-- Volver a habilitar
ALTER TABLE propiedades ENABLE CONSTRAINT ck_prop_tipo;
Útil durante migraciones masivas, aunque solo si estás seguro de los datos que vas a cargar.
5. Buenas prácticas
Recomendación | Motivo |
---|---|
Prefijo del nombre (ck_ ) | Distinguir de pk_ (primary), fk_ (foreign), uk_ (unique). |
Valores cortos ('V','L','A','T' ) | Ocupan menos y se comparan más rápido. |
Columna TIPO en CHAR(1) | Evitas espacios en blanco accidentales; perfecto para códigos fijos. |
Documentar en el diccionario (COMMENT ON COLUMN ) | Queda claro para el equipo qué significa cada letra. |
6. Conclusión
Las CHECK constraints
son una herramienta sencilla y potentísima para mantener la calidad de tu información sin depender del código de la aplicación. Bastan tres líneas de SQL para blindar una columna entera.
¿Te quedaste con dudas? Déjalas en los comentarios y las resolvemos juntos. ¡Feliz modelado!
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.

NUESTRAS ÚLTIMAS PUBLICACIONES
- CHECK Constraint en Oracle SQL: garantiza la calidad de tus datos paso a paso
- Simulacro #4 – Examen de C++ / Estructuras de Datos
- Simulacro #3 – Examen de C++ / Estructuras de Datos
- Simulacro #2 de Examen C++
- Simulacro de Examen de Estructuras de Datos en C++ (con Soluciones)Guía completa para repasar antes del parcial/final
- Fundamentos de C++ y Ejercicios Resueltos de Estructuras de Datos: Guía Paso a Paso
- Examen Avanzado-Moderado de Programación en C#
- Examen de Programación Intermedio: POO, Colecciones y Serialización
- Examen Avanzado de Fundamentos de Programación en C#
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido
Comments are closed