Chave Primária MySQL

Resumo : neste tutorial, você aprenderá como usar a restrição de chave primária do MySQL para criar a chave primária para uma tabela.

Introdução à chave primária do MySQL

No MySQL, uma chave primária é uma coluna ou conjunto de colunas que identifica exclusivamente cada linha da tabela.

Uma coluna de chave primária deve conter valores exclusivos. Se a chave primária consistir em diversas colunas, a combinação de valores nessas colunas deverá ser exclusiva. Além disso, uma coluna de chave primária não pode conter NULL.

Uma tabela pode ter zero ou uma chave primária, mas não mais que uma.

Definindo uma chave primária de coluna única

Normalmente, você define uma chave primária para uma tabela ao criá-la . Aqui está a sintaxe para definir a chave primária que consiste em uma coluna:

CREATE TABLE table_name(
   column1 datatype PRIMARY KEY,
   column2 datatype, 
   ...
);

Nesta sintaxe, definimos a PRIMARY KEYrestrição como uma restrição de coluna .

Além disso, você pode colocar PRIMARY KEYno final da lista de colunas:

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype, 
   ...,
   PRIMARY KEY(column1)
);

Nesta sintaxe, definimos a PRIMARY KEYrestrição como uma restrição de tabela .

Definindo uma chave primária com várias colunas

Se a chave primária consistir em duas ou mais colunas, você precisará usar uma restrição de tabela para definir a chave primária:

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   ...,
   PRIMARY KEY(column1, column2)
);

Nesta sintaxe, você lista as colunas da chave primária entre parênteses, separadas por vírgulas, seguidas pelas PRIMARY KEYpalavras-chave.

Adicionando uma chave primária a uma tabela existente

Se uma tabela existente não tiver uma chave primária, você poderá adicionar uma chave primária à tabela usando a ALTER TABLE ... ADD PRIMARY KEYinstrução:

ALTER TABLE table_name
ADD PRIMARY KEY(column1, column2, ...);

Removendo uma chave primária

Na prática, você raramente removerá uma chave primária. No entanto, se quiser fazer isso, você pode usar a ALTER TABLE ... DROP PRIMARY KEYdeclaração:

ALTER TABLE table_name
DROP PRIMARY KEY;

Exemplos de CHAVE PRIMÁRIA MySQL

Exploraremos alguns exemplos de definição de chaves primárias.

1) Definindo um exemplo de chave primária de coluna única

O exemplo a seguir cria uma tabela chamada products, que tem a idcoluna como chave primária:

CREATE TABLE products(
   id INT PRIMARY KEY,
   name VARCHAR(255) NOT NULL
);Linguagem de código:  PHP  ( php )

Ao inserir dados na productstabela, você precisa garantir a exclusividade dos valores na idcoluna. Por exemplo:

INSERT INTO products (id, name) 
VALUES 
    (1, 'Laptop'),
    (2, 'Smartphone'),
    (3, 'Wireless Headphones');Linguagem de código:  JavaScript  ( javascript )

Se você tentar inserir um valor duplicado na coluna de chave primária, receberá um erro. Por exemplo:

INSERT INTO products (id, name) 
VALUES 
  (1, 'Bluetooth Speaker');Linguagem de código:  JavaScript  ( javascript )

Erro:

ERROR 1062 (23000): Duplicate entry '1' for key 'products.PRIMARY'Linguagem de código:  JavaScript  ( javascript )

A saída indica que o MySQL encontrou uma entrada duplicada 1 para a chave primária da productstabela.

Acompanhar manualmente os valores da chave primária pode ser um desafio. Para simplificar este processo, o MySQL fornece o atributo AUTO_INCREMENT , que atribui automaticamente um valor único à chave primária cada vez que você insere um novo registro.

2) Definindo uma chave primária de coluna única com exemplo de atributo AUTO_INCREMENT

As instruções a seguir recriam a productstabela com a chave primária que usa o AUTO_INCREMENTatributo:

DROP TABLE products; 

CREATE TABLE products(
   id INT AUTO_INCREMENT PRIMARY KEY,
   name VARCHAR(255) NOT NULL
);Linguagem de código:  PHP  ( php )

Agora, você pode inserir novas linhas na productstabela sem precisar fornecer os valores da coluna de chave primária. Por exemplo:

INSERT INTO products (name) 
VALUES 
    ('Laptop'),
    ('Smartphone'),
    ('Wireless Headphones');Linguagem de código:  JavaScript  ( javascript )

O MySQL gera automaticamente valores inteiros sequenciais para a idcoluna quando uma nova linha é inserida.

Aqui está o conteúdo da productstabela:

SELECT * FROM products;

Saída:

+----+---------------------+
| id | name                |
+----+---------------------+
|  1 | Laptop              |
|  2 | Smartphone          |
|  3 | Wireless Headphones |
+----+---------------------+
3 rows in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

3) Definindo um exemplo de chave primária com várias colunas

Criaremos uma nova tabela chamada customers:

CREATE TABLE customers(
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(255) NOT NULL,
    last_name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL
);Linguagem de código:  PHP  ( php )

Suponha que cada cliente tenha alguns produtos favoritos e cada produto seja preferido por alguns clientes.

Para modelar esse relacionamento, você precisa criar uma tabela chamada favorites:

CREATE TABLE faviorites(
    customer_id INT,
    product_id INT,
    favorite_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(customer_id, product_id)
);Linguagem de código:  PHP  ( php )

A favoritestabela possui um primário que consiste em duas colunas customer_ide product_id.

Observe que no tutorial de chave estrangeira você aprenderá como definir uma chave estrangeira para a customer_idcoluna que faz referência à idcoluna da customerstabela e uma chave estrangeira para a product_idcoluna que faz referência à idcoluna da productstabela.

4) Exemplo de adição de uma chave primária a uma tabela

A instrução a seguir cria uma tabela chamada tagssem chave primária:

CREATE TABLE tags(
    id INT,
    name VARCHAR(25) NOT NULL
);Linguagem de código:  PHP  ( php )

Para tornar a idcoluna a chave primária, você usa a ALTER TABLE ... ADD PRIMARY KEYinstrução:

ALTER TABLE tags
ADD PRIMARY KEY(id);

5) Removendo a chave primária de uma tabela

A instrução a seguir remove a chave primária da tagstabela:

ALTER TABLE tags
DROP PRIMARY KEY;

Resumo

  • Uma chave primária é um identificador exclusivo para uma linha de uma tabela.
  • Use a PRIMARY KEYrestrição para definir uma chave primária para uma tabela.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *