기타/오류

[Problem] MySQL 에러 Duplicate foreign key constraint name

배발자 2022. 12. 28.

목차

    반응형

    [Problem] MySQL 에러 Duplicate foreign key constraint name

    
      
    CREATE TABLE `test`.`adminstrate` (
    `aid` INT NOT NULL AUTO_INCREMENT,
    `pid` INT NULL,
    `sid` INT NULL,
    PRIMARY KEY (`aid`),
    INDEX `pid_idx` (`pid` ASC) VISIBLE,
    INDEX `sid_idx` (`sid` ASC) VISIBLE,
    CONSTRAINT `pid`
    FOREIGN KEY (`pid`)
    REFERENCES `test`.`pro` (`pid`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
    CONSTRAINT `sid`
    FOREIGN KEY (`sid`)
    REFERENCES `test`.`student` (`sid`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);

     

    ERROR 1826: Duplicate foreign key constraint name 'sid'

    중복된 외래키 라고 적혀있는데 외래키 설정페이지에서 외래키 키 네임을 다르게 설정해줘야한다. 

     

     

    [Problem] MySQL 에러 Duplicate foreign key constraint name
    기존 외래키 설정 페이지
    [Problem] MySQL 에러 Duplicate foreign key constraint name
    이후 외래키 설정

     

    예전 프로젝트 때 "fk_테이블명a_테이블명b" 으로 지정했던 것이 기억이 난다.

    의미는 a테이블에 b테이블의 PK 컬럼을 외래키로 가지고 있다라는 뜻. 

     

    업로드한 사진에서는 fk 이름이 겹치지않게만 설정해주고 돌렸다. 

     

     

    
      
    CREATE TABLE `test`.`adminstrate` (
    `aid` INT NOT NULL AUTO_INCREMENT,
    `pid` INT NULL,
    `sid` INT NULL,
    PRIMARY KEY (`aid`),
    INDEX `pid_idx` (`pid` ASC) VISIBLE,
    INDEX `sid_idx` (`sid` ASC) VISIBLE,
    // 제약 네임 변경 됨.
    CONSTRAINT `pid_fk`
    FOREIGN KEY (`pid`)
    REFERENCES `test`.`pro` (`pid`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
    // 제약 네임 변경 됨.
    CONSTRAINT `sid_fk`
    FOREIGN KEY (`sid`)
    REFERENCES `test`.`student` (`sid`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);

     

    정상적으로 테이블 생성된다. 

    반응형

    댓글