¿Qué es una clave primaria en una tabla?
Columna o conjunto de columnas con valores únicos y no nulos que identifica de forma irrepetible cada registro dentro de una tabla de base de datos.
Micro-Soluciones Tecnológicas
Diseña tablas, columnas, relaciones relacionales (FK) y genera scripts DDL CREATE TABLE e índices al instante 100% en tu navegador.
No hay claves foráneas en esta tabla.
Presiona 'Nueva FK' para vincular a otra tabla.
La normalización organiza las columnas y tablas para reducir la redundancia y eliminar anomalías de actualización. La 1NF exige valores atómicos; la 2NF elimina dependencias parciales de la clave; y la 3NF elimina dependencias transitivas entre columnas no clave.
Los identificadores BIGINT autoincrementales ofrecen máximo rendimiento en inserciones secuenciales B-Tree; los UUID v7 / ULID combinan orden temporal con unicidad distribuida sin colisiones; las claves compuestas garantizan unicidad de negocio en tablas intermedias N:M.
Las Foreign Keys (FK) garantizan la consistencia ACID. La acción CASCADE elimina registros dependientes automáticamente; RESTRICT / NO ACTION impide borrar el registro padre si tiene hijos asociados; SET NULL preserva los hijos desvinculando la clave.
Crear índices explícitos en columnas de Foreign Key (como user_id, order_id) previene Sequential Scans en operaciones JOIN y evita bloqueos de tabla completa durante actualizaciones o borrados en la tabla principal.
El motor de base de datos rechaza la creación de la clave foránea con un error de restricción.
Verifica que la columna foránea y la clave primaria referenciada tengan exactamente el mismo tipo de datos (ej. BIGINT con BIGINT) y el mismo signo (ambos UNSIGNED).
Los motores relacionales exigen compatibilidad binaria estricta de tipos de datos y que la tabla/columna de destino exista previamente antes de ejecutar el script DDL hijo.
Eliminar un registro padre (ej. usuario) elimina silenciosamente miles de registros asociados (facturas, pedidos).
Cambia la acción ON DELETE a RESTRICT o SET NULL en relaciones donde los registros secundarios deban conservarse para auditoría.
CASCADE propaga la eliminación en árbol a todas las tablas hijas sin disparar advertencias. En arquitecturas modernas se prefieren borrados lógicos (Soft Deletes con deleted_at) o RESTRICT.
Consultas con JOIN o actualizaciones en la tabla principal provocan bloqueos (locks) y degradación de rendimiento.
Activa la opción de Índice para cada columna de clave foránea creada en el diseñador de tablas.
Muchos motores (como PostgreSQL) no crean índices automáticamente en las claves foráneas. Sin un índice B-Tree, cualquier DELETE en la tabla padre requiere un Sequential Scan completo de la tabla hija.
El script DDL falla porque la tabla A referencia a la tabla B, pero la tabla B referencia a la tabla A.
Elimina la referencia circular creando las tablas primero sin la Foreign Key y añadiéndola posteriormente con ALTER TABLE ADD CONSTRAINT.
Los scripts DDL se ejecutan secuencialmente. Si dos tablas se referencian mutuamente, ninguna puede crearse primero a menos que las FK se definan mediante sentencias ALTER TABLE separadas al final.
En junio de 1970, el informático británico Edgar F. Codd publicó el artículo 'A Relational Model of Data for Large Shared Data Banks'. Esta revolucionaria propuesta reemplazó a los complejos modelos jerárquicos de red de la época, sentando las bases de las tablas, filas, columnas y claves que usamos hoy.
Aunque los índices pueden acelerar una consulta SELECT de 5 segundos a 1 milisegundo (una mejora del 500.000%), cada índice añadido degrada la velocidad de los INSERT, UPDATE y DELETE, ya que el motor debe reordenar y balancear el árbol B-Tree en disco con cada mutación.
Durante décadas en MySQL e InnoDB, cualquier inconsistencia en la creación de una Foreign Key (tipos incompatibles, falta de índice, nombres repetidos) arrojaba el opaco mensaje 'Can't create table (errno: 150)', acumulando millones de visitas en Stack Overflow.
Mientras que una aplicación web típica tiene entre 20 y 80 tablas, los sistemas ERP empresariales como SAP S/4HANA o Salesforce contienen más de 30.000 tablas relacionales activas conectadas por cientos de miles de claves foráneas e índices particionados.
Aprende los conceptos fundamentales, protocolos y términos técnicos de esta herramienta.
Columna o conjunto de columnas con valores únicos y no nulos que identifica de forma irrepetible cada registro dentro de una tabla de base de datos.
Vínculo referencial entre dos tablas que garantiza que el valor de una columna secundaria coincida obligatoriamente con una clave primaria existente en la tabla padre.
Instrucción de integridad referencial que borra automáticamente todos los registros secundarios asociados en cascada cuando se elimina el registro principal padre.
Estructura de datos en árbol balanceado que permite al motor de base de datos encontrar registros en tiempo logarítmico O(log n) sin escanear toda la tabla.