[sequelize error] Duplicate entry '1-1' for key '' - 다대다 테이블에서 fk를 중복하여 쓰는 방법

마데슾 : My Dev Space·2020년 7월 27일
0

sequelize

목록 보기
2/2

현재 User 테이블과 Affiliations 테이블의 다대다 테이블인 UserAffiliation에 데이터를 입력하는 과정에서 아래와같은 에러가 발생하였다.

😤 SqlError: (conn=1389, no: 1062, SQLState: 23000) Duplicate entry '1-1' for key 'UserAffliations_AffliationId_UserId_unique'

UserAffliation 테이블은 User 테이블의 idAffiliations 테이블의 id를 참조하는데 다대다 테이블이니 당연히 UserAffiliationsid를 중복하여 가질 수 있는것이 당연하다고 생각하는데 위와같이 중복관련하여 에러가 발생하니 어이가 없었다..

구글링

문제를 해결하기위해 구글에 검색을 해보았고, 다행히도 누군가 sequelizegithub issues에 올려놓은 글이 있어서 문제를 해결할 수 있었다.

키워드 : sequelize Duplicate entry '1-1' for key foreign key
참고블로그 : https://github.com/sequelize/sequelize/issues/3220

M:N 테이블에서 fk를 중복하여 사용하려면 아래와같이 unique: false를 함께 사용해줘야 한다.

db.User.belongsToMany(db.Affliations, {
  through: 'UserAffliations',
  as: 'Affliations',
  unique: false,
});
profile
👩🏻‍💻 🚀

0개의 댓글