SQL外键约束格式错误

时间:2020-01-11 22:04:59

标签: mysql foreign-keys

希望有人能帮助我。 会话表在这里:

CREATE TABLE User (
  UID int,
  Name varchar(40),
  Vorname varchar(15),
  Titel varchar(40),
  Geschlecht int,
  EMailAdr varchar(40),
  SHID int,
  Guthaben int ,
  PRIMARY KEY (UID),
  FOREIGN KEY (SHID) REFERENCES Schule(SHID), 
  UNIQUE (EMailAdr)
);

CREATE TABLE Schule (
  SHID int,
  Name varchar(40),
  Adr varchar(80),
  PRIMARY KEY (SHID),
  UNIQUE (Adr),
  UNIQUE (Name)
);

CREATE TABLE Lokal (
  LID int,
  Name varchar(40),
  Adr varchar(40),
  KontoNr varchar(40),
  PRIMAYR KEY (LID),
  UNIQUE (Adr),
  UNIQUE (Name)
);

CREATE TABLE Zahlungsarten (
  ZID int,
  Bezeichnung varchar(40),
  PRIMARY KEY (ZID)
);

CREATE TABLE BestellteArtikel (
  ArID int,
  BID int,
  Anzahl int,
  PRIMARY KEY (ArID,BID)
);

CREATE TABLE Status (
  SID int,
  Bezeichnung varchar(40),
  PRIMARY KEY (SID)

);

CREATE TABLE Artikel (
  ArID int,
  Bezeichnuhg varchar(40),
  Beschreibung varchar(120),
  Preis int,
  LID int,
  Liefervolumen int,
  PRIMARY KEY (ArID),
  UNIQUE (Bezeichnung)
);

CREATE TABLE Bestellungen (
  BID int,
  UID int,
  Datum Date,
  ZID int,
  SID int,
  SHID int,
  LID int,
  PRIMARY KEY (BID),
  FOREIGN KEY (UID) REFERENCES User(UID),
  FOREIGN KEY (ZID) REFERENCES Zahkungsarten(ZID),
  FOREIGN KEY (SID) REFERENCES Status(SID),
  FOREIGN KEY (SHID) REFERENCES Schule(SHID),
  FOERIGN KEY (LID) REFERENCES Lokal(LID)
);

1 个答案:

答案 0 :(得分:0)

有几个问题。

在表User中:

创建表Schule之前,您要先参考该表。该表必须存在,然后才能声明引用它的外键。因此,如果您在创建Schule之前先创建User(我测试过,它就可以了),那么该方法就起作用。

在表Lokal中:

PRIMAYR KEY (LID),

您输错了PRIMARY。

在表Artikel中:

Bezeichnuhg varchar(40),

我认为您输错了Bezeichnung。

在表Bestellungen中:

FOERIGN KEY (LID) REFERENCES Lokal(LID)

您输错了FOREIGN。

在所有适当的尊重下,您应该能够自己纠正这些错误,而无需在Stack Overflow上发布问题。其中大多数是明显的拼写错误。