Agregar la clave principal a una tabla MySQL
- Agregar la clave principal a una tabla MySQL
-
Use
CREAR TABLA
para agregar clave principal en MySQL -
Use
ALTER TABLE
para agregar clave principal en MySQL
Este artículo presenta cómo agregar la clave principal a una tabla MySQL usando las instrucciones CREATE TABLE
y ALTER TABLE
.
Agregar la clave principal a una tabla MySQL
Es importante mantener las siguientes reglas antes de agregar la clave principal.
- Los valores del campo de clave principal deben ser únicos.
- La columna utilizada para crear una clave principal no puede estar vacía o
NULL
. - MySQL Server no inserta un nuevo registro con una clave principal ya existente.
- Solo se permite una clave principal en una tabla.
Podemos crear una clave primaria usando la declaración CREATE TABLE
o la declaración ALTER TABLE
. Veamos ambos a continuación.
Use CREAR TABLA
para agregar clave principal en MySQL
Por lo general, creamos la clave principal al crear una tabla. Se prefiere el siguiente enfoque si la clave principal tiene una sola columna.
Usamos la restricción de clave principal como la restricción de campo (columna).
Código de ejemplo:
CREATE TABLE students(
ID INT NOT NULL PRIMARY KEY,
STUDENT_NAME VARCHAR(50) NOT NULL
);
Usamos la siguiente declaración para asegurarnos de que se crea la clave principal.
DESCRIBE students;
# Alternatively, we can write as given below
DESC students;
Producción :
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| ID | int | NO | PRI | NULL | |
| STUDENT_NAME | varchar(50) | NO | | NULL | |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.04 sec)
En el resultado anterior, el PRI
debajo de la columna Clave
muestra que el valor respectivo en la columna Campo
se usa para crear una clave principal.
Supongamos que queremos crear una clave principal utilizando varias columnas. Entonces, podemos hacer eso como se indica a continuación.
Código de ejemplo:
CREATE TABLE courses(
COURSE_ID INT NOT NULL,
STUDENT_ID INT NOT NULL,
COURSE_NAME VARCHAR(50) NOT NULL,
CONSTRAINT PK_STUDENT_COURSE
PRIMARY KEY (COURSE_ID,STUDENT_ID)
);
Use la declaración DESCRIBE
para verificar si se crea la clave principal.
DESCRIBE courses
Producción :
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| COURSE_ID | int | NO | PRI | NULL | |
| STUDENT_ID | int | NO | PRI | NULL | |
| COURSE_NAME | varchar(50) | NO | | NULL | |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.43 sec)
Vemos dos valores PRI
en la columna Clave
, lo que significa que COURSE_ID
y STUDENT_ID
se utilizan como clave principal.
Recuerde, debemos usar una restricción de clave primaria como una restricción de tabla (relación) cuando se trata de varias columnas separadas por comas (,
), pero también se puede hacer con una sola columna. Consulte la siguiente consulta.
Código de ejemplo:
CREATE TABLE students(
ID INT NOT NULL,
STUDENT_NAME VARCHAR(50) NOT NULL,
PRIMARY KEY(ID)
);
Tenga en cuenta que la clave principal tiene solo una columna, pero usamos la restricción de clave principal como una restricción de tabla. Puede encontrar la diferencia entre las restricciones de nivel de tabla y de nivel de columna aquí.
Use ALTER TABLE
para agregar clave principal en MySQL
Después de crear una tabla, nos damos cuenta de que una columna en particular dentro de una tabla debe ser una clave principal para evitar la redundancia. En ese caso, usamos la instrucción ALTER TABLE
.
Cuando una tabla no contiene una clave principal, esta declaración nos permite modificar y crear una clave principal para las columnas de una tabla existente. Supongamos que tenemos una tabla persona
con ID
y FULLNAME
como columnas.
Código de ejemplo:
# Create a table without a primary key
CREATE TABLE person(
ID INT NOT NULL,
FULLNAME VARCHAR(50) NOT NULL
);
# Describe `person` table
DESCRIBE person;
Producción :
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID | int | NO | | NULL | |
| FULLNAME | varchar(50) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.07 sec)
Mira, no tenemos ninguna clave principal en la salida anterior. Ahora, podemos usar la declaración ALTER TABLE
como se indica a continuación para crear una clave principal en la columna deseada.
Código de ejemplo:
ALTER TABLE person ADD PRIMARY KEY(ID);
Recuerde, el campo utilizado para crear una clave principal debe tener valores únicos y no contener NULL
o vacío. Ahora, use la instrucción DESCRIBE
para asegurarse de que se haya creado correctamente una clave principal.
Código de ejemplo:
DESCRIBE person;
Producción :
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID | int | NO | PRI | NULL | |
| FULLNAME | varchar(50) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.07 sec)