SQL restrição exclusiva
A restrição UNIQUE identifica exclusivamente cada registro em uma tabela de banco de dados.
As UNIQUE e PRIMARY KEY restrições tanto fornecer uma garantia de exclusividade para uma coluna ou conjunto de colunas.
Uma restrição de chave primária tem automaticamente uma restrição UNIQUE definida nele.
Note que você pode ter muitas restrições UNIQUE por mesa, mas apenas uma restrição PRIMARY KEY por tabela.
SQL restrição exclusiva em CREATE TABLE
O seguinte SQL cria uma restrição UNIQUE na "P_Id" coluna quando a "Persons" tabela é criada:
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MySQL:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
Para permitir a nomeação de uma restrição UNIQUE, e para a definição de uma restrição exclusiva em várias colunas, use a seguinte sintaxe SQL:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)
SQL restrição exclusiva em ALTER TABLE
Para criar uma restrição UNIQUE na "P_Id" coluna quando a tabela já é criado, use o seguinte SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD UNIQUE (P_Id)
Para permitir a nomeação de uma restrição UNIQUE, e para a definição de uma restrição exclusiva em várias colunas, use a seguinte sintaxe SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
Para excluir uma restrição exclusiva
Para eliminar uma restrição UNIQUE, use o seguinte SQL:
MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID