Chave primária MySQL

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

Introdução à chave primária MySQL

Uma chave primária é uma coluna ou um conjunto de colunas que identifica exclusivamente cada linha da tabela. A chave primária segue estas regras:

  • Uma chave primária deve conter valores únicos. Se a chave primária consistir em várias colunas, a combinação de valores nessas colunas deve ser única.
  • Uma coluna de chave primária não pode ter valores NULL. Qualquer tentativa de inserir ou atualizar NULL em colunas de chave primária resultará em erro. Observe que o MySQL adiciona implicitamente uma restrição NOT NULL às colunas da chave primária.
  • Uma tabela pode ter uma e apenas uma chave primária.

Porque o MySQL funciona mais rápido com inteiros, o tipo de dados da coluna da chave primária deve ser o inteiro, por exemplo, INT, BIGINT. E você deve se certificar de que os intervalos de valores do tipo inteiro para a chave primária são suficientes para armazenar todas as linhas possíveis que a tabela pode ter.

Uma coluna de chave primária geralmente tem o AUTO_INCREMENT atributo que gera automaticamente um inteiro sequencial sempre que você insere uma nova linha na tabela.

Quando você define uma chave primária para uma tabela, o MySQL cria automaticamente um índice chamado PRIMARY.

Exemplos de CHAVE PRIMÁRIA do MySQL

A restrição PRIMARY KEY permite que você defina uma chave primária de uma tabela quando você cria ou altera a tabela.

1) Defina uma restrição PRIMARY KEY em CREATE TABLE

Normalmente, você define a chave primária para uma tabela no CREATE TABLE.

Se a chave primária tiver uma coluna, você pode usar a restrição PRIMARY KEY como uma restrição de coluna:

Code language: SQL (Structured Query Language) (sql)

Quando a chave primária tem mais de uma coluna, você deve usar e PRIMARY KEY restrição como uma restrição de tabela.

Nesta sintaxe, você separa as colunas em column_list por vírgulas ( ,).

A restrição da tabela PRIMARY KEY pode ser usada quando a chave primária tem uma coluna:

O exemplo a seguir cria uma tabela chamada users cuja chave primária é a coluna user_id:

Esta instrução cria o roles tabela que tem a restrição PRIMARY KEY como a restrição da tabela:

No caso da chave primária consistir em várias colunas, você deve especificá-las no final da instrução CREATE TABLE. Você coloca uma lista separada por vírgulas de colunas de chave primária entre parênteses seguido das PRIMARY KEY palavras-chave.

O exemplo a seguir cria a user_roles tabela cuja chave primária consiste em duas colunas: user_id e role_id. Ele define a restrição PRIMARY KEY como a restrição da tabela:

Observe que a instrução também criou duas restrições de chave estrangeira.

2) Defina PRIMARY Restrições KEY usando ALTER TABLE

Se uma tabela, por alguns motivos, não tiver uma chave primária, você pode usar a instrução ALTER TABLE para adicionar uma chave primária para a tabela da seguinte forma:

Code language: SQL (Structured Query Language) (sql)

O exemplo a seguir adiciona a coluna id à chave primária.

Primeiro, crie a tabela pkdemos sem uma chave primária.

Code language: SQL (Structured Query Language) (sql)

Segundo, adicione uma chave primária chave para a tabela pkdemos usando a ALTER TABLE declaração:

Code language: SQL (Structured Query Language) (sql)

Se você adicionar uma chave primária a uma tabela que já possui dados. Os dados na (s) coluna (s), que serão incluídos na chave primária, devem ser únicos e não nulos.

CHAVE PRIMÁRIA vs. CHAVE ÚNICA vs. CHAVE

KEY é o sinônimo de INDEX. Use o KEY quando quiser criar um índice para uma coluna ou conjunto de colunas que não faz parte de uma chave primária ou chave única.

Um índice UNIQUE garante que os valores em uma coluna sejam exclusivos. Ao contrário do índice PRIMARY, o MySQL permite NULL valores no índice UNIQUE. Além disso, uma tabela pode ter vários UNIQUE índices.

Suponha que email e username dos usuários na users tabela devem ser exclusivos.Para aplicar essas regras, você pode definir UNIQUE índices para as colunas email e username como a seguinte declaração:

Adicione um UNIQUE índice para a coluna username:

Code language: SQL (Structured Query Language) (sql)

Adicione um UNIQUE índice para a coluna email:

Code language: SQL (Structured Query Language) (sql)

Neste tutorial, você aprendeu como criar uma chave primária para uma nova tabela ou adicionar uma chave primária a uma tabela existente.

  • Este tutorial foi útil?
  • Sim Não

Leave a Reply

Deixe uma resposta

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