私が検索したように、これは一般的なエラーであり、ケースごとに解決策が異なります。私はデータベース設計の初心者です。しかし、私にとって奇妙なのは、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);