일괄수정, 일괄삭제

이태규·2022년 3월 24일
0

SQL

목록 보기
19/26

스프링은 AUTOCOMMIT이기 때문에 위의 방식임
중간에 오류 났을 때 되돌릴 방법이 없음.
그래서 INSERTALL처럼 한번에 할 수 있는 방법을 써야한다.

스프링의 방식

UPDATE MEMBER4 SET USERNAME='F', USERAGE=111 WHERE USERID = 'a';
COMMIT;
UPDATE MEMBER4 SET USERNAME='F', USERAGE=111 WHERE USERID = 'D';
COMMIT;
UPDATE MEMBER4 SET USERNAME='F', USERAGE=111 WHERE USERID = 'C';
COMMIT;

일괄 수정

  • 회원정보수정 D라는 회원정보의 이름, 나이를변경
UPDATE MEMBER4 SET 
    USERNAME= (CASE
    WHEN USERID ='a' THEN 'AA'
    WHEN USERID ='C' THEN 'Acf'
    WHEN USERID ='D' THEN 'AD'
    END),
    USERAGE = (CASE
    WHEN USERID  ='a' THEN 33
    WHEN USERID ='C' THEN 55
    WHEN USERID ='D' THEN 47
    END)
WHERE USERID IN ('a', 'C', 'D');
COMMIT;

일괄삭제

--일괄 삭제 (조건 1개, 아이디가 일치)
DELETE FROM MEmBER4 WHERE USERID IN ('a');
COMMIT;


--일괄 삭제 (조건 2개 , 아이디와 나이가 일치)
DELETE FROM MEMBER4 WHERE (USERID,USERAGE) IN (('C', 55),('D',2),('a',33));
COMMIT;

일괄삭제 조건 2개의 경우 두개다 일치하는 행만 삭제된다.

profile
한 걸음씩 나아가자

0개의 댓글