Postgresql pg_advisory_lock_shared 설명 : 포스트그레스큐엘 함수
1. 함수의 목적
Postgresql pg_advisory_lock_shared 함수는 입력인수로 지정한 키에 해당되는 row에 세션레벨의 공유(shared) Advisory Lock을 건다. 함수 사용시 출력되는 결과값은 없다. 이 함수 대신 pg_try_advisory_lock_shared를 사용하면 결과값으로 성공시 'true', 실패시 'false'를 반환 받을 수 있다.
해당 함수로 건 lock은 세션종료시 자동으로 해제된다.
* Advisory Lock 이란 Postgresql DB 시스템 레벨의 Lock이 아닌 사용자 혹은 어플리케이션에서 설정하는 lock이며 lock의 설정 및 해제책임은 사용자 혹은 어플리케이션에 있다.
* 공유(shred) Lock 이란 lock이 설정된 대상은 lock이 풀릴때까지 쓰기는 금지되고, 읽기만 허용
* 배타적(exclusive) Lock이란 lock이 설정된 대상은 lock이 풀릴때까지 읽기와 쓰기 모두 금지
2. 샘플을 통한 개념 퀵뷰
SELECT pg_advisory_lock_shared(id) FROM foo WHERE id = 12345;
pg_advisory_lock_shared
----------------------
3. 사용방법
pg_advisory_lock_shared( key bigint )
pg_advisory_lock_shared( key1 integer, key2 integer )
4. 함수 PARAMETER 설명
[key]
Advisory Lock을 걸고자 하는 bigint, integer 타입의 키를 지정한다.
5. 다양한 샘플 표현
1) example 테이블의 idx='1'인 row에 Advisory Lock을 건다,
SELECT pg_advisory_lock_shared(idx) FROM example e2 WHERE idx = 1;
▶▶ Posgresql 내장함수 모음 : atotw.tistory.com/category/IT/Postgresql%20DBMS