Vincolo SQL PRIMARY KEY

Vincolo SQL PRIMARY KEY

La CONSTRAINT PRIMARY KEY identifica univocamente ogni record nella tabella del database.

La chiave primaria deve contenere valori unici.

La colonna della chiave primaria non può contenere valori NULL.

Ogni tabella dovrebbe avere una chiave primaria e ogni tabella può avere solo una chiave primaria.

Constraint PRIMARY KEY su CREATE TABLE SQL

Di seguito è riportato lo SQL che crea la CONSTRAINT PRIMARY KEY nella colonna "Id_P" durante la creazione della tabella "Persons":

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 si desidera dare un nome al vincolo PRIMARY KEY e definire vincoli PRIMARY KEY per più colonne, utilizzare la seguente sintassi 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)
)

Vincolo PRIMARY KEY SQL su ALTER TABLE

Se si crea un vincolo PRIMARY KEY per la colonna "Id_P" in una tabella già esistente, utilizzare il seguente SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)

Se si desidera dare un nome al vincolo PRIMARY KEY e definire vincoli PRIMARY KEY per più colonne, utilizzare la seguente sintassi SQL:

MySQL / SQL Server / Oracle / MS Access:

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

Nota:Se si utilizza la frase ALTER TABLE per aggiungere una chiave primaria, è necessario dichiarare la colonna della chiave primaria come non contenente valori NULL (al momento della creazione della tabella per la prima volta).

Revoca vincolo PRIMARY KEY

Se si desidera revocare il vincolo PRIMARY KEY, utilizzare il seguente SQL:

MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID