티스토리 뷰

node.js

sequelize에서 array rows update하기

모카데브 2018. 9. 14. 13:21

nodejs에서 ORM으로 sequelize를 사용하고 있는데, 대량으로 update를 해야 되는데 bulkCreate는 있는데 bulkUpdate는 없다.

그럼 이를 어찌 해결 할까 했는데 이것도 역시 bulkCreate를 사용하면 된다.

models.table.bulkCreate([
        array
    ], {updateOnDuplicate: true},
).then((result) => {
    return res.json(result);
}).catch(err => {
    console.error(err);
    res.status(500).json(err);
});

중요한건 updateOnDuplicate: true 이 설정이다.

 

덧붙임)

s0metimes님께서 댓글로 자세하게 설명을 해주셨습니다.

해당 내용 참고하시면 문제 해결에 도움이 될 거 같습니다.

updateOnDuplicate 배열 안엔 primaryKey 가 아니라, 중복됐을 경우 업데이트 할 column 들을 넣어줘야 합니다.
실제로 이 코드는 SQL 문에서 'ON DUPLICATE KEY UPDATE' 로 실행이 되고,
이는 Primary Key 또는 Unique 제약이 걸렸을 경우 중복에 걸린 row 에 대해 업데이트 할 column 들을 지정해주는 SQL 입니다.
 
반응형

'node.js' 카테고리의 다른 글

heroku에서 timezone 설정하기  (1) 2019.04.25
request와 cheerio를 이용한 웹 크롤링  (0) 2018.12.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함