Tema SQL
Secuencias e identidad (AUTO_INCREMENT, IDENTITY, SERIAL)
Generar valores numéricos únicos automáticamente.
Descripción
Claves sustitutas sin calcular en aplicación: AUTO_INCREMENT (MySQL), IDENTITY (SQL Server), GENERATED … AS IDENTITY (PostgreSQL), SEQUENCE reutilizable (manual §21).
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
-- Ilustrativo por motor
id INT AUTO_INCREMENT PRIMARY KEY
-- o
CREATE SEQUENCE seq_pedidos START WITH 1 INCREMENT BY 1;
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- Secuencia
- Objeto independiente; NEXTVAL en inserts según motor.
Ejemplos
Ejemplo 1
CREATE TABLE pedidos (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
total DECIMAL(12,2)
);
Ejemplo 2
SELECT NEXT VALUE FOR seq_ejemplo; -- según motor
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.