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