Estructura · valores predeterminados

DEFAULT

Define el valor que recibe una columna cuando una inserción no proporciona otro.

Lectura: 5–7 minEjemplo comprobadoPráctica con pistas
Contenido de esta guía

Qué hace DEFAULT

DEFAULT declara un valor predeterminado para una columna. El motor lo utiliza cuando un INSERT omite esa columna o, en los motores que lo admiten en ese contexto, cuando se escribe expresamente la palabra DEFAULT.

No es una corrección automática de datos. Si proporcionas un valor, ese valor tiene prioridad. Si proporcionas NULL, el resultado suele ser NULL cuando la columna lo permite; el valor predeterminado no sustituye por sí solo ese NULL.

Cómo se declara y se utiliza

Crear la tabla
CREATE TABLE pedidos_demo (
  id INTEGER PRIMARY KEY,
  estado VARCHAR(20) NOT NULL DEFAULT 'pendiente'
);

El valor pertenece a la definición de estado. La restricción NOT NULL expresa otra regla: la columna no puede quedar sin valor.

Ejemplo guiado

SQL
INSERT INTO pedidos_demo (id) VALUES (101);
INSERT INTO pedidos_demo (id, estado) VALUES (102, 'pagado');

SELECT id, estado
FROM pedidos_demo
ORDER BY id;
Resultado comprobado en SQLite
idestado
101pendiente
102pagado

La primera inserción omite estado, por lo que se usa 'pendiente'. La segunda proporciona 'pagado' y no activa el valor predeterminado.

DEFAULT actúa al escribir la fila. Cambiar el valor predeterminado después no modifica las filas existentes; solo afecta a futuras operaciones que lo utilicen.

Error frecuente

Esperar que DEFAULT reemplace un NULL explícito

Ejemplo problemático
INSERT INTO pedidos_demo (id, estado)
VALUES (103, NULL);

Como estado es NOT NULL, esta inserción falla. Para obtener el valor predeterminado, omite la columna o utiliza la sintaxis DEFAULT que admita tu motor.

Comprueba lo aprendido

Básica · definición de tabla

Crea una preferencia inicial

Define una tabla suscripciones con id como clave primaria, email obligatorio y activa con valor predeterminado 1. Después inserta la fila (1, 'ana@example.test') sin escribir activa.

Compatibilidad entre motores

La idea básica de un valor predeterminado es portable. Sí cambian las expresiones permitidas, la sintaxis para alterar un valor existente y el uso de DEFAULT dentro de otras sentencias. Las funciones de fecha y los mecanismos de identidad también son específicos de cada motor.

Qué debes recordar

  • DEFAULT se aplica cuando falta un valor en la inserción.
  • Un valor explícito tiene prioridad, incluso cuando es NULL y la columna lo permite.
  • Cambiar el valor predeterminado no reescribe las filas anteriores.
  • Combínalo con restricciones cuando el dominio necesite reglas adicionales.

Conceptos relacionados

Fuentes técnicas consultadas