개발/DB(MariaDB)

5. DB - (트랜잭션)

oneidsin 2025. 3. 17. 17:19

트랜잭션

트랜잭션이란 DB에 상태를 변경시키는 작업 단위이다.
즉, 한꺼번에 실행되어야 할 연산들의 모음이다.
트랜잭션은 하나 이상의 쿼리를 포함해야 한다.

트랜잭션에서는 commit과 rollback 이 있다.
commit : 모든 작업들을 정상 처리하겠다고 확정하는 명령어. 처리 과정을 DB 에 저장.
rollback : 작업 중 실수를 했을 경우, 변경사항을 취소하고 이전으로 돌아가는 명령어.

 

트랜잭션 전역 설정

기본적으로 mysql이나 mariadb는 디폴트값으로 autocommit이 켜져 있다.
즉, 쿼리문을 하나 실행할 때마다 자동으로 commit이 된다는 것이다.
이러한 autocommit을 확인하는 명령어는

select @@autocommit;

 

이렇게 입력하고 실행했을 때, 1이 나온다면 autocommit이 켜져 있는 것이다.
0이 나온다면 꺼져 있는 것이다.
이러한 autocommit을 수동으로 켜고 끌 수도 있다.
autocommit off 는 DML문(insert, update, delete)에서만 적용된다.
DDL문은 기본적으로 커밋이 실행된다(create, alter, drop, rename, truncate)

 

-- autocommit 끄기
set autocommit = 0;

-- autocommit 켜기
set autocommit = 1;

 

commit 이전으로 되돌리는 명령어는 rollback 이다.

-- 이전 commit 으로 되돌림
rollback;

'개발 > DB(MariaDB)' 카테고리의 다른 글

7. DB - (서브쿼리)  (0) 2025.03.17
6. DB - (key)  (0) 2025.03.17
4. DB - (DML-2, ORDER BY, GROUP BY, HAVING)  (0) 2025.03.17
3. DB - (DML-1)  (0) 2025.03.17
2. DB - (테이블 생성, 수정)  (0) 2025.03.17