Con una tabella creata con questo comando:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Possiamo inserire un elemento più di una volta.
E in particolare, possiamo avere colonne che ripetono lo stesso valore.
Possiamo forzare una colonna ad avere solo valori univoci usando UNIQUE
vincolo chiave:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL UNIQUE
);
Ora se provi ad aggiungere il "Flavio" due volte:
INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (20, 'Flavio');
Riceveresti un errore:
ERROR: duplicate key value violates unique constraint "people_name_key"
DETAIL: Key (name)=(Flavio) already exists.
Una chiave primaria è una chiave univoca che ha un'altra proprietà:è il modo principale per identificare una riga nella tabella.
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL PRIMARY KEY
);
La chiave primaria può essere, ad esempio, un'e-mail in un elenco di utenti.
La chiave primaria può essere un id
univoco che assegniamo automaticamente a ciascun record.
Qualunque sia il valore, sappiamo che possiamo usarlo per fare riferimento a una riga nella tabella.