3

単純な CREATE TABLE クエリに問題があります。2 つのテーブル "resort" (resortID と resortName) と "season" (resortID と resortName) が多対多の関係にあります。次の 2 つのクエリのいずれかを使用して結合テーブル 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 番目のクエリの場合): "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"

私は何を間違っていますか?エラーの理由がわからないので、これは頭痛の種です。

私が単純にやれば

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

その後、正常に動作し、テーブルが作成されます。ただし、このテーブルがリゾートとシーズンのテーブルを有効に参照するかどうかはわかりません。

4

1 に答える 1

1

主キー定義から 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)
);
于 2012-04-10T09:43:58.437 に答える