잠시만 기다려 주세요

     '월급 200 받는 사람이 국회의원 되는 그날까지... 슈퍼기득권 전부 아웃... 국회의원 봉사직 전환을 꿈꾸며... '
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (16)  |  여러가지 팁 (1056)  |  추천 및 재미 (151)  |  자료실 (22)  |  
시사, 이슈, 칼럼, 평론, 비평 (600)  |  끄적거림 (129)  |  문예 창작 (705)  |  바람 따라 (69)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    postgresql

postgresql - postgresql table lock 테이블 락, 잠금, 트랜잭션
이 름 : 바다아이   |   조회수 : 9141         짧은 주소 : https://www.bada-ie.com/su/?131591784155

기본적인 사용법은 다음과 같다.

BEGIN WORK;
LOCK TABLE table_name IN ACCESS EXCLUSIVE MODE;
SELECT * FROM table_name WHERE id=10;
Update table_name SET field1=test WHERE id=10;
COMMIT WORK;


unlock table 명령은 없습니다. 잠금은 항상 트랜잭션 끝에서 자동 해제됩니다.
 

ACCESS SHARE

ACCESS EXCLUSIVE 락 모드와 충돌이 난다. SELECT 와 ANALYZE 명령어가 사용될때 이 잠금 모드가 사용된다. 일반적으로 오직 읽기를 수행하거나, 갱신이 없는 명령어를 수행할때는 이 모드를 획득한다고 보면 된다.

ROW SHARE

EXCLUSIVE, ACCESS EXCLUSIVE 모드와 충돌이 난다. SELECT FOR UPDATE 명령시에 타겟이 되는 테이블에 이 잠금 모드가 설정된다.

ROW EXCLUSIVE

SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE, ACCESS EXCLUSIVE 모드와 충돌이 난다. UPDATE, DELETE, INSERT 명령어가 수행될때 타겟 테이블에 이 잠금 모드가 설정된다. 일반적으로 테이블의 데이터를 갱신하는 명령어들이 수행될 때 이 모드가 설정된다고 생각하면 된다.

SHARE UPDATE EXCLUSIVE

SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE, ACCESS EXCLUSIVE 모드와 충돌이 난다. 이 모드는 동시에 테이블 스키마의 변경이나, VACUUM (FULL 제외) 실행시에 설정되며 테이블을 보호해준다.

SHARE

ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE ROW EXCLUSIVE, EXCLUSIVE, ACCESS EXCLUSIVE 모드와 충돌이 난다. 동시에 테이블의 데이터가 변경되지 않도록 테이블을 보호한다. CREATE INDEX 명령 수행시 설정되는 모드이다.

SHARE ROW EXCLUSIVE

ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE, ACCESS EXCLUSIVE 모드와 충돌이 난다. 이 모드는 PostgreSQL 명령어로는 자동적으로 설정되지 않는다. 즉 사용자가 명시적으로 선언하여야 한다.

EXCLUSIVE

ROW SHARE, ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE, ACCESS EXCLUSIVE 모드와 충돌이 난다. 이 모드는 동시에 ACCESS SHARE 잠금만 허용하도록 한다. 바꾸어 말하면, 이 모드에서는 오직 읽기 트랜잭션만 동시에 수행 될 수 있다는 뜻이다. SHARE ROW EXCLUSIVE 모드와 마찬가지로 PostgreSQL 명령어로는 자동설정 되지 않고, 명시적으로 잠금을 설정하여야 한다.

ACCESS EXCLUSIVE

ACCESS EXCLUSIVE 모드를 포함하여 모든 잠금 모드와 충돌이 난다. 가장 엄격한 잠금 모드로서 이 모드로 잠금이 설정되어 동작중인 트랜잭션만 테이블에 접근을 할 수 있다. ALTER TABLE, DROP TABLE, REINDEX, CLUSTER, VACUUM FULL 명령어 수행시 설정된다. 만약 명시적 잠금을 사용하기 위해 LOCK 명령을 사용할 경우 아무런 옵션도 주지 않고 실행 한다면 기본적으로 이 모드가 설정된다는 것을 알아 두자.



주의)

lock 강하게 걸고 비정상 종료로 커밋이나 롤백 없게 되면 테이블 접근이 안됩니다.
postgresql 재시작하거나 pid 찾아서 해제해 주어야 합니다.
그러니까 프로그램 하실 때... 어떤 에러 상황에서든 롤백이나 커밋 둘중에 하나는 하게 만드셔야 합니다.


출처 : http://kh2ya.tistory.com/93
 
| |





      1 page / 2 page
번 호 카테고리 제 목 이름 조회수
45 postgresql postgresql ... postgresql 14 .. postgresql.conf port 5432 .. 바다아이 1025
44 postgresql , count(*) .... 바다아이 7324
43 postgresql How to do an update + join in PostgreSQL?, 바다아이 6518
42 postgresql sequence(퀀) 바다아이 8457
41 postgresql , , , index create, , 바다아이 8688
40 postgresql postgresql log_timezone .... 바다아이 6967
39 postgresql postgresql SEQUENCE reset .... 바다아이 8799
38 postgresql [PostgreSql] WITH , , Operator 바다아이 8180
37 postgresql postgresql for, foreach , 바다아이 9804
36 postgresql postgresql , , into ... 바다아이 9827
35 postgresql postgresql PL/pgSQL - SQL Procedural Language, , 바다아이 11218
34 postgresql postgresql ... .. , , 바다아이 12452
33 postgresql postgresql CSV export/import 바다아이 8968
32 postgresql postgresql tablespace , .... 바다아이 13592
31 postgresql postgresql 10 partitioning, ... , ... 바다아이 9721
30 postgresql Using PostgreSQL Arrays, ... ... 바다아이 9696
29 postgresql PostgreSQL (TRIGGER) (function) 바다아이 9450
28 postgresql Optimize and Improve PostgreSQL Performance with VACUUM, ANALYZE, and REINDEX 바다아이 10078
27 postgresql postgresql tuple . vacuumdb .. , . 바다아이 9488
26 postgresql postgresql , .. 바다아이 9724
25 postgresql postgresql , size, 바다아이 11776
24 postgresql postgresql , , .... 바다아이 8721
23 postgresql PostgreSQL Replication, , , master, slave 바다아이 11434
22 postgresql postgresql case 바다아이 8562
21 postgresql postgresql with 바다아이 9021
20 postgresql postgresql , , string 바다아이 12273
19 postgresql Postgresql partitioning table , , , 바다아이 9548
18 postgresql PostgreSQL 바다아이 11012
17 postgresql postgresql vacuumdb, psql, pg_dump password crontab , pgpass 바다아이 10808
16 postgresql postgresql sequence 퀀 auto_increment . 바다아이 10141
| |









Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천  실행시간 : 0.06375
to webmaster... gogo sea. gogo sea.