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 atualizarNULL
em colunas de chave primária resultará em erro. Observe que o MySQL adiciona implicitamente uma restriçãoNOT 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