SQL PRIMARY KEY Vincolo
Il vincolo PRIMARY KEY identifica in modo univoco ogni record in una tabella di database.
Le chiavi primarie devono contenere valori unici.
Una colonna chiave primaria non può contenere valori NULL.
La maggior parte delle tabelle devono avere una chiave primaria, e ogni tabella può avere una sola chiave primaria.
SQL PRIMARY KEY vincolo su CREATE TABLE
Il seguente SQL crea una chiave primaria nella "P_Id" colonna quando il "Persons" si crea tabella:
MySQL:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Per consentire nomina di un vincolo PRIMARY KEY, e per la definizione di un vincolo PRIMARY KEY su più colonne, utilizzare la seguente sintassi 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 pk_PersonID PRIMARY KEY (P_Id,LastName)
)
Note: Nell'esempio precedente vi è solo una chiave primaria (pk_PersonID). Tuttavia, il valore della chiave primaria è composta da due colonne (P_Id + LastName).
SQL PRIMARY KEY vincolo su ALTER TABLE
Per creare un vincolo PRIMARY KEY sulla "P_Id" colonna quando il tavolo è già stato creato, utilizzare il seguente SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
Per consentire nomina di un vincolo PRIMARY KEY, e per la definizione di un vincolo PRIMARY KEY su più colonne, utilizzare la seguente sintassi SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
Note: Se si utilizza l'istruzione ALTER TABLE per aggiungere una chiave primaria, la colonna chiave primaria (s) deve essere già stato dichiarato di non contenere valori NULL (quando il tavolo è stato creato per primo).
Per eliminare un vincolo PRIMARY KEY
Per eliminare un 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