일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 접근제한자
- O(n)
- mvc디자인패턴
- java
- break
- 빅오표기법
- java접근제어자
- 데이터베이스
- 자바연산자
- DAO
- sql
- oracle db
- 자바
- DB
- DTO
- Oracle SQL Developer
- DEFAULT
- 메이븐업데이트
- DATABASE
- Vo
- C#접근제한자
- oracle developer
- C언어 표준 라이브러리
- o(log n)
- JavaSwing
- C#접근제어자
- 오라클
- JSP
- DB 제약조건
- Oracle
성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و
SQL Developer / 트랜잭션 Transaction 본문
1102 수업내용
--19_트랜젝션.sql
/*
# 트랜젝션 (Transaction)
- 하나의 작업 단위 (ex: 송금)
- 데이터베이스는 하나의 트랜잭션에 속한 모든 작업이 정상적으로 완료되는 경우에만
변경사항을 확정 지을 수 있는 기능을 제공한다. (All or Nothing)
- 트랜젝션을 관리하기 위해 COMMITM, ROLLBACK, SAVEPOINT, ROLLBACK TO 사용
- 하나의 트랜잭션은 마지막 커밋 이후부터 새로운 커밋 사이에서 실행된 모든 DML만을 의미한다.
(INSERT, UPDATE, DELETE 는 트랜잭션의 관리 대상이나
CREAT, ALTER 등의 DDL은 트랜잭션의 관리 대상이 아니다.)
*/
SELECT * FROM fruits;
DELETE FROM fruits;
INSERT INTO fruits VALUES('Apple', 1222, 'C', 'ZM');
INSERT INTO fruits VALUES('PineApple', 1256, 'B', 'ZM');
-- COMMIT : 여태까지의 변경 사항을 저장하여 확정짓는다. (하나의 트랜잭션을 마무리한다.)
COMMIT;
INSERT INTO fruits VALUES('Apple', 1222, 'C', 'ZM');
INSERT INTO fruits VALUES('PineApple', 1256, 'B', 'ZM');
-- ROLLBACK: 가장최근의 커밋으로 돌아간다.
ROLLBACK;
SAVEPOINT mysavepoint1;
UPDATE fruits SET fruit_price = fruit_price + 500;
UPDATE fruits SET fruit_price = fruit_price + 500 WHERE country_id = 'ZM';
SELECT* FROM fruits;
ROLLBACK TO mysavepoint2;
ROLLBACK TO mysavepoint1; -- 1번 돌아간 시점에서 다시 미래로 돌아갈 수 없다.
-- 트랜잭션의 작업 중 일부만 취소하고 계속해서 진행하고 싶은 경우
-- SAVEPOINT와 ROLLBACK TO를 활용한다.
'백엔드개발 > DATABASE' 카테고리의 다른 글
Oracle SQL / Database 유용한 함수 (0) | 2023.11.07 |
---|---|
SQL Develper / Database / 시퀀스 (Sequence) (0) | 2023.11.07 |
oracle developer / ON DELETE (0) | 2023.11.07 |
Oracle SQL Developer 테이블 수정하기 (새 컬럼 추가, 삭제, 변경) (0) | 2023.11.07 |
Oracle SQL Developer /DB 제약조건 2 (0) | 2023.11.07 |