Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为多对多关系创建表时出现MySQL错误_Mysql - Fatal编程技术网

为多对多关系创建表时出现MySQL错误

为多对多关系创建表时出现MySQL错误,mysql,Mysql,我对简单的CREATETABLE查询有一个问题。在多对多关系中,我有两张表“‘resort’(带RestorId和RestorName)和‘season’(带RestorId和RestorName)。 我试图通过以下两个查询中的一个来创建加入表resort_season: CREATE TABLE resort_season ( resortID MEDIUMINT UNSIGNED NOT NULL, seasonID MEDIUMINT UNSIGNED NOT NULL, FOREIGN

我对简单的CREATETABLE查询有一个问题。在多对多关系中,我有两张表“‘resort’(带RestorId和RestorName)和‘season’(带RestorId和RestorName)。 我试图通过以下两个查询中的一个来创建加入表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
);
这两个查询都会给我一个错误,如下所示(对于本例中的第二个查询):
“您的语法有错误;查看手册…第2行“
中使用“外键引用度假村(RestorId)、季节ID MEDIUMINT UNSIGNED NOT NULL F”附近的正确语法

我做错了什么?这让我头疼,因为我不明白为什么会出错

如果我只是

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

然后它工作正常,表被创建。我不确定此表是否有效地引用了表resort and season。

从主键定义中删除NOTNULL-

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)
);

这些是InnoDB表吗?我没有在查询中明确指定。这是导致此错误的原因吗?谢谢!因此,只有在度假区和季节表中定义主键时才应该指定NOTNULL内容?您在
度假区ID
季节ID
表中指定为NOTNULL,所以相关字段(在
度假酒店
季节
表中)也不应为空。Promay键不允许空值。