Search

9-1-3. xid

-- [SQL-9-1-3-a] SELECT pg_current_xact_id();
SQL
복사
-- [SQL-9-1-3-b] BEGIN; -- 트랜잭션을 명시적으로 시작 -- 1. xid를 강제로 할당 -- 아래 SQL은 테스트를 위해 미리 xid를 할당 받은 것이다. -- 기본적으로는 처음 데이터 변경(UPDATE,INSERT,DELETE)시에 자동 할당 받는다. SELECT pg_current_xact_id(); -- 3574337 -- 2. ACC1을 조회 -- xmin이 위에서 조회한 xid보다 작음(현재 트랜잭션보다 이전에 생성된 버전) -- xmax=0 SELECT t1.ctid ,t1.xmin ,t1.xmax, t1.acc_no FROM startdbpg.ms_acc t1 WHERE t1.acc_no = 'ACC1'; -- 3. UPDATE 수행 UPDATE startdbpg.ms_acc t1 SET bal_amt = t1.bal_amt + 500 WHERE t1.acc_no = 'ACC1'; -- 4. ACC1을 조회 -- 위에서 할당 받은 xid와 xmin이 동일, xmax=0 SELECT t1.ctid ,t1.xmin ,t1.xmax, t1.acc_no FROM startdbpg.ms_acc t1 WHERE t1.acc_no = 'ACC1'; COMMIT;
SQL
복사