Vincolo SQL UNIQUE

Vincolo SQL UNIQUE

Il vincolo UNIQUE identifica unicamente ogni record nella tabella del database.

I vincoli UNIQUE e PRIMARY KEY forniscono una garanzia di unicità per le colonne o gruppi di colonne.

PRIMARY KEY ha un vincolo UNIQUE automaticamente definito.

Attenzione, ogni tabella può avere più vincoli UNIQUE, ma solo un vincolo PRIMARY KEY.

Vincolo UNIQUE su CREATE TABLE SQL

Il seguente SQL crea un vincolo UNIQUE nell'indice "Id_P" quando la tabella "Persons" viene creata:

MySQL:

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

SQL Server / Oracle / MS Access:

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

Se si desidera dare un nome all'obbligo UNIQUE e definire un obbligo UNIQUE su più colonne, utilizzare il seguente SQL syntax:

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 uc_PersonID UNIQUE (Id_P,LastName)
)

Obbligo UNIQUE SQL su ALTER TABLE

Quando la tabella è stata già creata, se si desidera creare un obbligo UNIQUE nella colonna "Id_P", utilizzare il seguente SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (Id_P)

Se si desidera dare un nome all'obbligo UNIQUE e definire un obbligo UNIQUE su più colonne, utilizzare il seguente SQL syntax:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

Revoca dell'obbligo UNIQUE

Se si desidera revocare l'obbligo UNIQUE, utilizzare il seguente SQL:

MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID