Restrição PRIMARY KEY SQL

Restrição PRIMARY KEY SQL

A restrição de PRIMARY KEY identifica exclusivamente cada registro na tabela do banco de dados.

A chave primária deve conter valores únicos.

A coluna da chave primária não pode conter valores NULL.

Cada tabela deve ter um chave primária e cada tabela pode ter apenas uma chave primária.

Restrição de PRIMARY KEY no CREATE TABLE

O seguinte SQL cria uma restrição de PRIMARY KEY na coluna "Id_P" quando a tabela "Persons" é criada:

MySQL:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Se precisar nomear a restrição PRIMARY KEY e definir restrições PRIMARY KEY para várias colunas, use a seguinte sintaxe SQL:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
)

Restrição PRIMARY KEY do SQL em ALTER TABLE

Se precisar criar uma restrição PRIMARY KEY para a coluna "Id_P" quando a tabela já existe, use o seguinte SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)

Se precisar nomear a restrição PRIMARY KEY e definir restrições PRIMARY KEY para várias colunas, use a seguinte sintaxe SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

Notas:Se você usar a declaração ALTER TABLE para adicionar uma chave primária, deve declarar a coluna da chave primária como não conter valores NULL (ao criar a tabela pela primeira vez).

Anular restrição PRIMARY KEY

Se precisar anular a restrição PRIMARY KEY, use o seguinte SQL:

MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID