1. 트랜잭션 수행
psql> begin;
> select now();
> select now();
> commit;
=> 동일한 time
2. read only
psql> show transaction_read_only;
> begin transaction read only;
> select now();
> commit and chain; (# 다음 트랜잭션도 read only로 진행)
> select now();
> commit; (# read only 종료)
3. savepoint
트랜잭션이 long일때 error 발생시 특정 부분으로 돌아가고자 할때
psql> begin;
> select 1;
> savepoint a;
> select 1/0;
> rollback to savepoint a;
> select 1;
> commit; ( savepoint 제거됨 )
4. transaction DDL
postgresql은 ddl에 대해 transaction 형태를 지원함
(transaction으로 alter를 수행했다가 다시 rollback이 가능함)
psql> begin;
> create table test (name varchar(10));
> alter table test alter column name type varchar(20);
> rollback;
5. transaction isolation level
1) read committed (default)
select 한 시점에 snapshot(undo) 정보로 데이터 제공
2) repeatable read
트랜잭션 동안 동일한 데이터 제공 ( 연관된 data가 commit 되든 안되든 간에 )
3) Serializable
특정 데이터 read 또는 변경시 한 사용자만 허용
4) read uncommited ( postgresql에서는 제공하지 않음 )
사용자에게 변경중인 데이터(uncommited) 제공
'RDB > PostreSQL' 카테고리의 다른 글
PostgreSQL 12 스토리지 optimization and cleanup (0) | 2020.04.29 |
---|---|
PostgreSQL 12 lock (0) | 2020.04.27 |
PostgreSQL 12에 신규 기능 (0) | 2020.04.20 |
PostgreSQL 함수 (0) | 2020.03.23 |
PostgreSQL 병렬 쿼리 (0) | 2020.03.23 |