Resumen: en este tutorial, aprenderá a utilizar la restricción de la clave principal de MySQL para crear la clave principal de una tabla.
Introducción a la clave principal de MySQL
Una clave principal es una columna o un conjunto de columnas que identifica de forma única cada fila de la tabla. La clave principal sigue estas reglas:
- Una clave principal debe contener valores únicos. Si la clave principal consta de varias columnas, la combinación de valores en estas columnas debe ser única.
- Una columna de clave principal no puede tener valores
NULL
. Cualquier intento de insertar o actualizarNULL
en las columnas de clave principal generará un error. Tenga en cuenta que MySQL agrega implícitamente una restricciónNOT NULL
a las columnas de clave primaria. - Una tabla puede tener una sola clave primaria.
Porque MySQL funciona más rápido con números enteros, el tipo de datos de la columna de clave principal debe ser el número entero, por ejemplo, INT,
BIGINT
. Y debe asegurarse de que los rangos de valores del tipo entero para la clave principal sean suficientes para almacenar todas las filas posibles que pueda tener la tabla.
Una columna de clave principal a menudo tiene el AUTO_INCREMENT
atributo que genera automáticamente un entero secuencial cada vez que inserta una nueva fila en la tabla.
Cuando define una clave principal para una tabla, MySQL crea automáticamente un índice llamado PRIMARY
.
Ejemplos de LLAVE PRIMARIA de MySQL
La restricción PRIMARY KEY
le permite definir una clave principal de una tabla cuando crea o modifica una tabla.
1) Defina una restricción PRIMARY KEY en CREATE TABLE
Normalmente, define la clave principal para una tabla en CREATE TABLE
declaración.
Si la clave principal tiene una columna, puede usar la restricción PRIMARY KEY
como restricción de columna:
Code language: SQL (Structured Query Language) (sql)
Cuando la clave principal tiene más de una columna, debe usar th e PRIMARY KEY
restricción como una restricción de tabla.
En esta sintaxis, separa las columnas en column_list
por comas ( ,).
La restricción de tabla PRIMARY KEY
se puede usar cuando la clave principal tiene una columna:
El siguiente ejemplo crea una tabla llamada users
cuya clave principal es la user_id
columna:
Esta declaración crea la roles
tabla que tiene la restricción PRIMARY KEY
como restricción de tabla:
En caso de que la clave principal consista en varias columnas, debe especificarlas al final de la instrucción CREATE TABLE
. Pones una lista separada por comas de columnas de clave primaria entre paréntesis seguidas de las PRIMARY KEY
palabras clave.
El siguiente ejemplo crea el user_roles
tabla cuya clave principal consta de dos columnas: user_id
y role_id
. Define la restricción PRIMARY KEY
como la restricción de la tabla:
Tenga en cuenta que la declaración también creó dos restricciones de clave externa.
2) Define PRIMARY Restricciones de CLAVE usando ALTER TABLE
Si una tabla, por alguna razón, no tiene una clave primaria, puede usar la instrucción ALTER TABLE
para agregar una clave primaria a la tabla de la siguiente manera:
Code language: SQL (Structured Query Language) (sql)
El siguiente ejemplo agrega la columna id
a la clave principal.
Primero, cree la tabla pkdemos
sin una clave principal.
Code language: SQL (Structured Query Language) (sql)
En segundo lugar, agregue una a la pkdemos
tabla usando la ALTER TABLE
instrucción:
Code language: SQL (Structured Query Language) (sql)
Si agrega una clave primaria a una tabla que ya tiene datos. Los datos de la (s) columna (s), que se incluirán en la clave principal, deben ser únicos y no NULL.
PRIMARY KEY vs. UNIQUE KEY vs. KEY
KEY
es el sinónimo de INDEX
. Utiliza KEY
cuando desea crear un índice para una columna o un conjunto de columnas que no es parte de una clave principal o clave única.
Un índice UNIQUE
garantiza que los valores de una columna deben ser únicos. A diferencia del índice PRIMARY
, MySQL permite valores NULL
en el índice UNIQUE
. Además, una tabla puede tener varios UNIQUE
índices.
Supongamos que email
y username
de los usuarios de la users
deben ser únicos.Para hacer cumplir estas reglas, puede definir UNIQUE
índices para las columnas email
y username
como la siguiente declaración:
Agregue un UNIQUE
índice para la username
columna:
Code language: SQL (Structured Query Language) (sql)
Agregue un índice UNIQUE
para la email
columna:
Code language: SQL (Structured Query Language) (sql)
En este tutorial, aprendió cómo crear una clave principal para una tabla nueva o agregar una clave principal a una tabla existente.
- ¿Fue útil este tutorial?
- Sí No