web-dev-qa-db-fra.com

Clé étrangère à plusieurs colonnes PostgreSQL

J'ai la table "session" avec

CONSTRAINT u_session UNIQUE (where, who, when)

J'ai besoin d'utiliser cette combinaison de (où, qui, quand) comme clé étrangère dans la table "résultats". Comment puis-je le faire?

2
Jesús Pinilla

Une clé étrangère peut également contraindre et référencer un groupe de colonnes. Comme d'habitude, il doit ensuite être écrit sous forme de contrainte de table. Voici un exemple de syntaxe artificielle:

CREATE TABLE t1 (
  a integer PRIMARY KEY,
  b integer,
  c integer,
  FOREIGN KEY (b, c) REFERENCES other_table (c1, c2)
);

Bien sûr, le nombre et le type des colonnes contraintes doivent correspondre au nombre et au type des colonnes référencées.

Réf: https://www.postgresql.org/docs/current/ddl-constraints.html

5
DEarTh