Logs

[Error] ERROR 1826: Duplicate foreign key constraint name 해결 방법

랩실외톨이 2022. 11. 18. 02:24
반응형

MySQL Workbanch에서 SQL 코드가 아니라 프로그램에서 제공하는 시스템을 가지고 테이블을 만들고 있었다.

그리고 외래키 제약사항을 체크해서 줬는데... 다 잘 만들었다고 생각하고 apply를 누르고 쿼리를 돌려서 테이블을 만들려는 순간 이 에러가 발생했다. 

 

원인은 에러에 적혀있는 그대로다. Foregin key constraint name, 즉 외래키의 제약조건의 이름을 외래 키와 똑같이 지어버려서 에러가 난 것이다. 테이블에서 외래 키에 제약조건을 주려면 그 제약조건에도 이름이 있어야 하는데 이 이름이 외래키의 이름과 같아서는 안된다. 만약 같다면 이 에러가 발생한다.

 

나는 이 사실을 몰랐다니 보다 쿼리를 직접 짜는게 아니라 프로그램에 넣고 하다 보니 이게 컬럼 이름을 넣으라는 건지 뭔지 헷갈려서 똑같이 적었다가 이 에러를 발견했다.

 

예를 들어, user_id를 외래키로 하고 싶다면 외래키 제약조건의 이름은 fk_user_id 이런 식으로 다르게 주면 되는 것이다.

반응형