错误:对于引用表“fruit”的给定键,没有唯一约束匹配

时间:2016-11-10 08:13:16

标签: sql postgresql

CREATE TABLE Gruppelærer(
  brnavn VARCHAR(8),
  emnekode VARCHAR(8),
  år INT,
  vh CHAR(4),
  antallgr INT,
  CONSTRAINT larer_id PRIMARY KEY(brnavn, emnekode, år, vh)
);

CREATE TABLE Søknad(
  brnavn VARCHAR(8),
  emnekode char(4),
  år VARCHAR(8),
  vh INT,
  antallgr INT,
  prioritet INT,
  FOREIGN KEY (brnavn, emnekode, år, vh, antallgr) REFERENCES Gruppelærer(brnavn, emnekode, år, vh, antallgr),
  UNIQUE (brnavn, emnekode, år, vh, prioritet)
);

ERROR:

  

没有唯一约束匹配引用表“fruit”的给定键

为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

或者,您需要从[vh]中删除PRIMARY_KEY字段,或将其添加到FOREIGN_KEY

CREATE TABLE fruit(
  fruitname VARCHAR(128),
  fruitid VARCHAR(8) NOT NULL,
  yearplanted INT,
  vh CHAR(4),
  numberoffruits INT,
  CONSTRAINT fruit_id PRIMARY KEY(fruitname, fruitid, yearplanted, vh)
);

CREATE TABLE InStore(
  fruitname VARCHAR(8),
  fruitid INT,
  yearplanted CHAR(4),
  quantity INT,
  FOREIGN KEY (fruitname, fruitid, yearplanted, vh) REFERENCES fruit(fruitname, fruitid, yearplanted, vh),
  UNIQUE (fruitname, fruitid, yearplanted, quantity, vh)
);