sql >> Base de Datos >  >> RDS >> Mysql

Cómo crear una clave primaria compuesta en MySQL

A veces, es posible que deba crear una clave primaria compuesta que consta de varios campos para las tablas de la base de datos. Aquí se explica cómo crear una clave primaria compuesta en MySQL.

Cómo crear una clave primaria compuesta en MySQL

Estos son los pasos para crear una clave principal compuesta en MySQL. Puede crear una clave principal compuesta, ya sea durante la creación de tablas con la instrucción CREATE TABLE o después de crear tablas con la instrucción ALTER TABLE. Veremos estos dos ejemplos para crear una clave principal compuesta en MySQL.

Ejemplos de clave principal compuesta de MySQL

Aquí se explica cómo crear una clave primaria compuesta en MySQL durante la creación de la tabla. Supongamos que desea crear pedidos (order_id, product_id, cantidad) tabla con clave primaria compuesta (order_id, product_id).

mysql> CREATE TABLE orders_list (
          order_id INT,
          product_id INT,
          amount INT,
          PRIMARY KEY (order_id, product_id)
     ) ;

mysql> describe orders_list;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| order_id   | int(11) | NO   | PRI | 0       |       |
| product_id | int(11) | NO   | PRI | 0       |       |
| amount     | int(11) | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

En la consulta anterior, hemos creado una clave primaria compuesta (order_id, product_id). En el resultado anterior, verá PRI mencionado en la columna Clave para order_id, product_id indicando que ambos son partes de la clave principal.

Lectura adicional:Cómo truncar una tabla en MySQL

Agregar clave principal compuesta en la tabla existente

Aquí hay un ejemplo de cómo agregar una clave principal compuesta en una tabla existente. Digamos que tienes la siguiente tabla

mysql> CREATE TABLE new_orders (
         order_id INT,
         product_id INT,
     amount INT
     ) ;

mysql> describe new_orders;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| order_id   | int(11) | YES  |     | NULL    |       |
| product_id | int(11) | YES  |     | NULL    |       |
| amount     | int(11) | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

Como puede ver los nuevos_pedidos la tabla no tiene una clave principal. Aquí está la consulta SQL para agregar una clave primaria compuesta usando ALTER TABLE.

Lectura adicional:MySQL DROP VIEW

mysql> alter table new_orders ADD PRIMARY KEY (order_id, product_id);

mysql> describe new_orders;
+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| order_id   | int(11) | NO   | PRI | 0       |       |
| product_id | int(11) | NO   | PRI | 0       |       |
| amount     | int(11) | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

Tenga en cuenta que no puede crear una clave principal compuesta de MySQL con incremento automático.

Lectura adicional:Cómo crear un índice en MySQL

Índice de clave principal compuesto de MySQL

Puede crear un índice para la clave principal compuesta que utilice los mismos campos presentes en su clave principal compuesta.

mysql> alter table new_orders ADD INDEX new_index (order_id, product_id);

Con suerte, ahora puede crear una clave principal compuesta en MySQL.

Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!