1

私が検索したように、これは一般的なエラーであり、ケースごとに解決策が異なります。私はデータベース設計の初心者です。しかし、私にとって奇妙なのは、MySQL Workbench によって生成された自動SQL コマンドを実行したために、このエラーが発生したことです!

ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ,
  CONSTRAINT `officialLanguage`
    FOREIGN KEY ()
    REFERENCES `mydb`.`la' at line 9
SQL Statement:

CREATE  TABLE `mydb`.`countries` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `name` VARCHAR(50) NULL ,
  `shortName` VARCHAR(10) NULL ,
  `nativeName` VARCHAR(45) NULL ,
  `url` VARCHAR(80) NULL ,
  `countryCode` VARCHAR(10) NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `officialLanguage` () ,
  CONSTRAINT `officialLanguage`
    FOREIGN KEY ()
    REFERENCES `mydb`.`languages` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);

変更または削除する各パーツは問題を解決しません。

2つ目のテーブルです。

外部キーを持たない最初のテーブルでは、問題はありませんでした。

CREATE  TABLE `mydb`.`languages` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `name` VARCHAR(20) NULL ,
  `shortName` VARCHAR(10) NULL ,
  `nativeName` VARCHAR(30) NULL ,
  PRIMARY KEY (`id`) );

Ed Gibbs のおかげで解決しました

私は自分が責任者だと思っていました!

CREATE  TABLE `mydb`.`countries` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `name` VARCHAR(50) NULL ,
  `shortName` VARCHAR(10) NULL ,
  `nativeName` VARCHAR(45) NULL ,
  `url` VARCHAR(80) NULL ,
  `countryCode` VARCHAR(10) NULL ,
  `officialLanguage` INT NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `officialLanguage` (`officialLanguage`) ,
  CONSTRAINT `officialLanguage`
    FOREIGN KEY (`officialLanguage`)
    REFERENCES `mydb`.`languages` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);
4

1 に答える 1