3

我在创建包含复合键和主键的 SQL 表时遇到问题。这就是我现在所拥有的:

CREATE TABLE Racunar (
  IPAdresa char(15) PRIMARY KEY,
  CPU char(20),
  HD char(20)
);

CREATE TABLE Program (
  Naziv char(15),
  Verzija char(20),
  Datum char(11),
  PRIMARY KEY(Naziv, Verzija)
);

CREATE TABLE Operater (
  SifO int PRIMARY KEY,
  Ime char(20),
  BrTel char(20)
);

CREATE TABLE JeInstaliran (
  IPAdresa char(15) FOREIGN KEY REFERENCES Racunar(IPAdresa),
  SifO int FOREIGN KEY REFERENCES Operater(SifO),
  FOREIGN KEY(Naziv, Verzija) REFERENCES Program(Naziv, Verzija),
  DatumInstalacije char(11)
);

问题出在最后一张表的某个地方。我正在使用SQL Fiddle,它在尝试构建架构后返回了下一条错误消息:

Schema Creation Failed:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“外键引用 Racunar(IPAdresa), SifO int FOREIGN KEY REFERENCES Oper”附近使用正确的语法:

我不知道为什么这不起作用,所以我会很感激任何帮助。提前致谢。

4

1 回答 1

0

语法不正确。不是FOREIGN KEY与列一起定义,而是在列定义之后使用语法定义它FOREIGN KEY (colname) REFERENCES tablename (foreign_colname)

CREATE TABLE JeInstaliran (
  IPAdresa char(15),
  SifO int,
  Naziv char(15),
  Verzija char(20),
  FOREIGN KEY (IPAdresa) REFERENCES Racunar(IPAdresa),
  FOREIGN KEY (SifO) REFERENCES Operater(SifO),
  FOREIGN KEY(Naziv, Verzija) REFERENCES Program(Naziv, Verzija),
  DatumInstalacije char(11)
);
于 2012-09-21T01:35:55.630 回答