YS's develop story

[1822] Failed to add the foreign key constraint MySQL에러 본문

Database/MySQL

[1822] Failed to add the foreign key constraint MySQL에러

Yusang 2021. 5. 16. 09:27

Foreign key를 설정하려고 테이블을 수정하려고 할 때 발생한 MySQL 1822 에러입니다.

이는 Foreign key 제약조건을 만족하지 않았을 때 발생하는 에러입니다.

 

 

Stack overflow에 같은 문제가 있어서 기록을 해두고자 했습니다.

 

MySQL Error 1822: Failed to add foreign key constraint; missing index for contraint BUT index exists

I am trying to add an foreign key to my flightschedule table but it fails, but I do not really know why. The foreign key should reference the txtAC_tag attribute from the tblAircraft table which is...

stackoverflow.com

Foreign key 관계의 경우 관계를 만드는 상위 테이블은 Unique 하거나 Primary 이어야 합니다.

또한 같은 데이터 타입 이어야 합니다.

 

저는 참조당하는 상위 테이블의 컬럼 값을 Unique, Primary 둘 중 어느 것도 설정해 주지 않았기 때문에 

에러가 발생한 것 같습니다.

 

그래서 참조하고자 하는 departmentName 값을 Primary key로 지정하거나

Unique로 설정 했을 때 에러가 무사히 해결되었습니다.

 

부서 이름을 튜플들을 식별할 수 있는 기본 키로 설정할 수 있다고 생각해서 Primary key로 지정했습니다.

 

Comments