잠시만 기다려 주세요

     '대한민국이 더이상 발전하지 못하는 것은 부패한 언론들의 쓰레기짓 때문이다.'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (19)  |  여러가지 팁 (1095)  |  추천 및 재미 (163)  |  자료실 (28)  |  
시사, 이슈, 칼럼, 평론, 비평 (795)  |  끄적거림 (142)  |  문예 창작 (719)  |  바람 따라 (75)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    postgresql

postgresql - postgresql table lock 테이블 락, 잠금, 트랜잭션
이 름 : 바다아이   |   조회수 : 10719         짧은 주소 : 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 .. 바다아이 1821
44 postgresql , count(*) .... 바다아이 8488
43 postgresql How to do an update + join in PostgreSQL?, 바다아이 7764
42 postgresql sequence(퀀) 바다아이 10234
41 postgresql , , , index create, , 바다아이 10227
40 postgresql postgresql log_timezone .... 바다아이 8274
39 postgresql postgresql SEQUENCE reset .... 바다아이 10198
38 postgresql [PostgreSql] WITH , , Operator 바다아이 9407
37 postgresql postgresql for, foreach , 바다아이 11189
36 postgresql postgresql , , into ... 바다아이 11326
35 postgresql postgresql PL/pgSQL - SQL Procedural Language, , 바다아이 12909
34 postgresql postgresql ... .. , , 바다아이 14442
33 postgresql postgresql CSV export/import 바다아이 10565
32 postgresql postgresql tablespace , .... 바다아이 15786
31 postgresql postgresql 10 partitioning, ... , ... 바다아이 11107
30 postgresql Using PostgreSQL Arrays, ... ... 바다아이 11145
29 postgresql PostgreSQL (TRIGGER) (function) 바다아이 10714
28 postgresql Optimize and Improve PostgreSQL Performance with VACUUM, ANALYZE, and REINDEX 바다아이 11324
27 postgresql postgresql tuple . vacuumdb .. , . 바다아이 10914
26 postgresql postgresql , .. 바다아이 11114
25 postgresql postgresql , size, 바다아이 13049
24 postgresql postgresql , , .... 바다아이 9889
23 postgresql PostgreSQL Replication, , , master, slave 바다아이 13466
22 postgresql postgresql case 바다아이 9948
21 postgresql postgresql with 바다아이 10393
20 postgresql postgresql , , string 바다아이 14338
19 postgresql Postgresql partitioning table , , , 바다아이 10761
18 postgresql PostgreSQL 바다아이 12389
17 postgresql postgresql vacuumdb, psql, pg_dump password crontab , pgpass 바다아이 12378
16 postgresql postgresql sequence 퀀 auto_increment . 바다아이 11324
| |









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