PostgreSQL 多列外键

Jes*_*lla 4 postgresql foreign-key

我有一张桌子“会话”

CONSTRAINT u_session UNIQUE (where, who, when)
Run Code Online (Sandbox Code Playgroud)

我需要使用 (where, who, when) 的组合作为表“结果”中的外键。我该怎么做?

DEa*_*rTh 12

外键还可以约束和引用一组列。像往常一样,它需要以表约束形式编写。这是一个人为的语法示例:

CREATE TABLE t1 (
  a integer PRIMARY KEY,
  b integer,
  c integer,
  FOREIGN KEY (b, c) REFERENCES other_table (c1, c2)
);
Run Code Online (Sandbox Code Playgroud)

当然,约束列的数量和类型需要与引用列的数量和类型相匹配。

参考:https : //www.postgresql.org/docs/current/ddl-constraints.html