Problema:
Você deseja criar uma chave primária para uma tabela em um banco de dados.
Exemplo:
Queremos uma chave primária para uma tabela chamada
product . Solução 1 (nova tabela):
CREATE TABLE product ( id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, producer VARCHAR(100) NOT NULL, price DECIMAL(7,2) );
Discussão:
Para criar uma nova tabela com uma coluna definida como chave primária, você pode usar a palavra-chave
PRIMARY KEY no final da definição dessa coluna. Em nosso exemplo, criamos a tabela product usando um CREATE TABLE cláusula, com os nomes das colunas e seus respectivos tipos de dados entre parênteses. Escolhemos o id da coluna como a chave primária desta tabela, então designamos PRIMARY KEY no final da definição desta coluna. Lembre-se de que você pode criar apenas uma chave primária para uma determinada tabela.
Solução 2 (nova tabela):
CREATE TABLE product ( name VARCHAR(100) NOT NULL, producer VARCHAR(100) NOT NULL), price DECIMAL(7,2), PRIMARY KEY(name, producer) );
Discussão:
Outra maneira de definir uma chave primária durante a criação de uma nova tabela é com uma
PRIMARY KEY cláusula no final das definições de coluna. Neste caso, designamos uma ou mais colunas como um argumento para a PRIMARY KEY cláusula; essas colunas se tornam a chave primária da tabela. Observe que essa abordagem permite que as chaves primárias sejam criadas com várias colunas. Neste exemplo, a chave primária da tabela
product é formado por duas colunas:name e producer . Solução 3 (tabela existente):
ALTER TABLE product ADD PRIMARY KEY (id);
Discussão:
Também é possível definir uma chave primária para uma tabela existente que ainda não possui uma chave primária.
Aqui, a tabela é alterada usando um
ALTER TABLE cláusula. A tabela (em nosso exemplo, product ) é nomeado após a palavra-chave ALTER TABLE , então a ADD PRIMARY KEY cláusula segue com o nome da coluna a ser usada como chave primária. Observe que a tabela já deve existir antes que este comando seja executado e a tabela ainda não deve ter uma chave primária. Solução 4 (tabela existente, restrição de chave primária):
ALTER TABLE product ADD CONSTRAINT PK_product_id PRIMARY KEY (id);
Discussão:
Use uma consulta como esta se quiser nomear uma restrição de chave primária para uma tabela existente. Aqui, a restrição de chave primária,
PK_product_id , é gerado a partir da coluna id . Se você não especificar o nome da restrição, o banco de dados gerará um nome de restrição padrão (o nome variará de acordo com o banco de dados).