1. SQL 쿼리 수정 (INSERT IGNORE 또는 REPLACE)
MySQL 또는 MariaDB를 사용하는 경우, INSERT IGNORE를 사용해 중복 삽입을 방지하거나, ON DUPLICATE KEY UPDATE를 사용해 업데이트 처리할 수 있습니다.
1-1. UNIQUE 제약 조건 추가
user_id와 invoice_id의 조합이 고유하도록 테이블에 UNIQUE 제약 조건을 설정합니다.
ALTER TABLE USER_POINT
ADD CONSTRAINT unique_user_invoice UNIQUE (user_id, invoice_id);
1-2. INSERT IGNORE 사용
UNIQUE 제약 조건이 있는 상태에서 동일한 user_id와 invoice_id가 있을 경우 삽입을 무시합니다.
const decreasePoint = async (type, provider, point, content, userId, invoice_id) => {
const _sql = `
INSERT IGNORE INTO USER_POINT (
user_point_type,
user_point_provider,
user_point,
user_point_content,
user_id,
point_id,
invoice_id
) VALUES (
'${type}',
'${provider}',
${point},
'${content}',
${userId},
0,
${invoice_id});`;
const _res = await lib.services.queryService(_sql);
return _res;
};
'Team > 난감했던 이슈들' 카테고리의 다른 글
[ GMAIL ] 메일 내용중 이미지 컨텐츠 표시 문제 (1) | 2024.12.26 |
---|---|
[ GIT ] git push 무한로딩 발생 대처 (0) | 2024.10.29 |
[ DB2 ] Data type mismatch (0) | 2024.10.23 |
[ ANGULAR ] net::ERR_ABORTED 503 (Outdated Optimize Dep) (0) | 2024.10.02 |
[ Node ] Window 상황에서 npm install 문제 node-gyp (0) | 2024.07.10 |