2012-07-28 3 views
0

을 만드는 :MySQL의 오류 1005 다음 문을 실행할 때 테이블

CREATE TABLE `intelischool`.`facultyclasses` (
    `id` VARCHAR(45) NOT NULL , 
    `class` VARCHAR(45) NOT NULL , 
    `subject` VARCHAR(45) NOT NULL , 
    `year` VARCHAR(45) NOT NULL , 
    `section` VARCHAR(45) NOT NULL , 
    PRIMARY KEY (`id`, `section`, `year`, `subject`, `class`) , 
    INDEX `id` (`id` ASC) , 
    CONSTRAINT `id` 
    FOREIGN KEY (`id`) 
    REFERENCES `intelischool`.`faculty` (`id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 

나는 오류 얻을 : 외래 키 해상력 전에

ERROR 1005: Can't create table 'intelischool.facultyclasses' (errno: 121) 
+0

PRIMARY KEY 테이블의 모든 필드는 나쁜 디자인입니다. –

답변

0

This mailing list thread과 거의 같은 문제이며 중복 제한 조건 이름으로 인해 결론에 도달했습니다.

당신은 아마 같은, 데이타베이스의 다른 테이블에있는 다른

CONSTRAINT `id` 

있습니다. 이러한 이름은 데이터베이스마다 고유해야합니다.

CONSTRAINT `facultyclasses_foreignkey` 

처럼 이름을 지정하거나 그 라인을 삭제하고 데이터베이스가 자동으로 이름을 생성 할 수 있습니다.

0

누락 쉼표를

그렇지 않으면

테이블을 삭제하고 이미 생성 된 테이블에 인덱스를 추가하는 대신 색인을 사용하여 테이블을 생성했습니다. 테이블)