简体   繁体   English

MySQL 多对多关系的 CREATE TABLE 错误

[英]MySQL error on CREATE TABLE for many-to-many relationship

I have an issue with a simple CREATE TABLE query.我对简单的 CREATE TABLE 查询有疑问。 I have two tables" 'resort' (with resortID and resortName) and 'season' (with resortID and resortName) in a many to many relationship. I am trying to create the joining table resort_season with either of the two queries below:我在多对多关系中有两个表“‘resort’(带有 resortID 和 resortName)和‘season’(带有 resortID 和 resortName)。我正在尝试使用以下两个查询之一创建连接表 resort_season:

CREATE TABLE resort_season (
resortID MEDIUMINT UNSIGNED NOT NULL,
seasonID MEDIUMINT UNSIGNED NOT NULL,
FOREIGN KEY (resortID) REFERENCES resort (resortID),
FOREIGN KEY (seasonID) REFERENCES season (seasonID),
PRIMARY KEY (resortID, seasonID) NOT NULL
);

CREATE TABLE resort_season (
resortID MEDIUMINT UNSIGNED NOT NULL FOREIGN KEY REFERENCES resort (resortID),
seasonID MEDIUMINT UNSIGNED NOT NULL FOREIGN KEY REFERENCES season (seasonID),
PRIMARY KEY (resortID, seasonID) NOT NULL
);

Both queries give me an error that reads (in the case of the second query in this case): "You have an error in your syntax; check manual....for right syntax to use near'FOREIGN KEY REFERENCES resort (resortID), seasonID MEDIUMINT UNSIGNED NOT NULL F' at line 2" .这两个查询都给我一个错误,上面写着(在这种情况下是第二个查询的情况): "You have an error in your syntax; check manual....for right syntax to use near'FOREIGN KEY REFERENCES resort (resortID), seasonID MEDIUMINT UNSIGNED NOT NULL F' at line 2"

What am I doing wrong?我究竟做错了什么? This is giving me a headache because I just can not see why the error.这让我很头疼,因为我就是看不出错误的原因。

If I do simply如果我简单地做

CREATE TABLE resort_season (
resortID MEDIUMINT UNSIGNED NOT NULL,
seasonID MEDIUMINT UNSIGNED NOT NULL,
PRIMARY KEY (resortID, seasonID) NOT NULL
);

then it works fine and the table is created.然后它工作正常并创建了表。 I am not sure though if this table will validly reference the tables resort and season.我不确定这张表是否会有效地引用表格度假村和季节。

Remove NOT NULL from the primary key definition -从主键定义中删除 NOT NULL -

CREATE TABLE resort_season(
  resortID MEDIUMINT UNSIGNED NOT NULL,
  seasonID MEDIUMINT UNSIGNED NOT NULL,
  FOREIGN KEY (resortID) REFERENCES resort (resortID),
  FOREIGN KEY (seasonID) REFERENCES season (seasonID),
  PRIMARY KEY (resortID, seasonID)
);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM