Database
 sql >> Base de Dados >  >> RDS >> Database

Como criar uma chave primária em SQL

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).