Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como criar uma chave primária composta no MySQL


Às vezes, você pode precisar criar uma chave primária composta que consiste em vários campos, para tabelas de banco de dados. Veja como criar uma chave primária composta no MySQL.


Como criar uma chave primária composta no MySQL


Aqui estão as etapas para criar a chave primária composta no MySQL. Você pode criar uma chave primária composta durante a criação da tabela usando a instrução CREATE TABLE ou após a criação de tabelas usando a instrução ALTER TABLE. Veremos esses dois exemplos para criar uma chave primária composta no MySQL.


Exemplos de chave primária composta do MySQL


Veja como criar uma chave primária composta no MySQL durante a criação da tabela. Digamos que você queira criar pedidos(order_id, product_id, amount) tabela com chave primária composta (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    |       |
+------------+---------+------+-----+---------+-------+

Na consulta acima, criamos a chave primária composta (order_id, product_id). Na saída acima, você verá o PRI mencionado na coluna Chave para order_id, product_id indicando que ambos são partes da chave primária.

Bônus de leitura:Como truncar a tabela no MySQL


Adicionar chave primária composta na tabela existente


Aqui está um exemplo de como adicionar chave primária composta em uma tabela existente. Digamos que você tenha a seguinte tabela
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 você pode ver, os new_orders tabela não tem uma chave primária. Aqui está a consulta SQL para adicionar a chave primária composta usando ALTER TABLE.

Bônus de leitura: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    |       |
+------------+---------+------+-----+---------+-------+

Observe que você não pode criar uma chave primária composta MySQL com incremento automático.

Bônus de leitura:Como criar índice no MySQL


Índice de chave primária composta do MySQL


Você pode criar um índice para a chave primária composta que usa os mesmos campos presentes em sua chave primária composta.
mysql> alter table new_orders ADD INDEX new_index (order_id, product_id);



Espero que agora você possa criar uma chave primária composta no MySQL.

O Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!