현재 User
테이블과 Affiliations
테이블의 다대다 테이블인 UserAffiliation
에 데이터를 입력하는 과정에서 아래와같은 에러가 발생하였다.
😤 SqlError: (conn=1389, no: 1062, SQLState: 23000) Duplicate entry '1-1' for key 'UserAffliations_AffliationId_UserId_unique'
UserAffliation
테이블은 User
테이블의 id
와 Affiliations
테이블의 id
를 참조하는데 다대다 테이블이니 당연히 User
와 Affiliations
의 id
를 중복하여 가질 수 있는것이 당연하다고 생각하는데 위와같이 중복관련하여 에러가 발생하니 어이가 없었다..
문제를 해결하기위해 구글에 검색을 해보았고, 다행히도 누군가 sequelize
의 github 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,
});