Il ne peut y en avoir qu'un clé primaire par table - comme indiqué par le mot "primaire".
Vous pouvez avoir des UNIQUE
colonnes
comme :
CREATE TABLE test(
sl_no int PRIMARY KEY, -- NOT NULL due to PK
emp_id int UNIQUE NOT NULL,
emp_name text,
emp_addr text
);
Colonnes qui sont (partie de) la PRIMARY KEY
sont marqués NOT NULL
automatiquement.
Ou utilisez une contrainte de table au lieu d'une contrainte de colonne pour créer un seul multicolonne clé primaire . Ceci est sémantiquement différent de ce qui précède :maintenant, seule la combinaison des deux colonnes doit être unique, chaque colonne peut contenir des doublons par elle-même.
CREATE TABLE test(
sl_no int, -- NOT NULL due to PK below
emp_id int , -- NOT NULL due to PK below
emp_name text,
emp_addr text,
PRIMARY KEY (sl_no, emp_id)
);
UNIQUE
multicolonne des contraintes sont également possibles.
À part :n'utilisez pas les identifiants CaMeL-case dans Postgres. Utilisez des identificateurs légaux en minuscules pour ne jamais avoir à utiliser de guillemets doubles. Vous facilite la vie. Voir :