1

필자가 조사한 바와 같이 이것은 일반적인 오류이며 각각의 경우 솔루션이 다릅니다. 나는 데이터베이스 디자인에 새로운 사람이다. 그러나 저에게 이상한 점은 MySQL Workbench에서 자동으로 생성 된 SQL 명령을 실행했기 때문에이 오류가 발생했습니다!MySQL ERROR 1064 - MySQL Workbench

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

변경하거나 제거해도 문제가 해결되지 않음

두 번째 표입니다. 에드 깁스

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

해결 감사

나는 내가 blamable했다 생각했다 : 더 외래 키 없었다 첫 번째 테이블에 대한

, 나는 아무 문제가 없었다!

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

색인 작성에 열 이름이 없습니다. 외래 키 ('REFERENCES ...')와 동일합니다. 나는 같은 문제가 다시 발생했다고 생각한다. 그래서 내 CREATE 스크립트를 위해 Workbench를 사용하지 않았다. 저것과 backticks의 바다. –

답변

1

officialLanguage 뒤에 빈 괄호가 있습니다. 열 이름이 없습니다.

동일 후 mydb. languages.