database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 8716 게시물 읽기
No. 8716
update할 때 deadlock detected error
작성자
심상호(shimsh)
작성일
2010-10-15 17:49
조회수
9,584

CREATE OR REPLACE FUNCTION "바로반복수정"(in1 integer,  in3 integer, in4 integer)
  RETURNS void AS
$BODY$DECLARE
  name text;
BEGIN
  name := 'update 회원종합 set 반복['||$1||']=0 where 일련번호>='||$2||' and 일련번호<'||$3;--업데이트문장만들고
  EXECUTE name;
   END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE
 

위 함수를 만들고 함수를 아래와 같이 실행하면

select  바로반복수정(127,10004000,10009000);

아래와 같은 에러가 납니다.

ERROR: deadlock detected

상세정보: Process 11117 waits for ExclusiveLock on tuple (4968,5) of relation 16840 of database 16386; blocked by process 11102.

Process 11102 waits for ShareLock on transaction 835759; blocked by process 11108.

Process 11108 waits for ShareLock on transaction 835716; blocked by process 11117.

힌트: See server log for query details.

구문: SQL statement "update 회원종합 set 반복 [127]=0 where 일련번호>=10004000 and 일련번호<10009000"

PL/pgSQL function "바로반복수정" line 6 at EXECUTE statement

 

update하면 자동으로 lock이나 트랜젝션이 걸리는 것 같습니다.

락이나 트랜젝션이 없이 안되는지요?

이 글에 대한 댓글이 총 2건 있습니다.

auto commit 상태라면 쿼리 한 줄 한 줄이 각각 트랜젝션의 단위가 됩니다. 크기의 차이이지 모든 질의는 트랜젝션이죠.

혹시 업데이트 시 동작하는 trigger나 rule이 있어서 다른 테이블에 영향을 주고 있지는 않은지 살펴보세요.

신기배(소타)님이 2010-10-16 10:10에 작성한 댓글입니다.

trigger, rule 그런거 설정하지 않았습니다.

아무 설정을 하지 않았는데 자동으로 걸린 것 같습니다.

혹시 배열을 써서 그런가요?

lock을 강제적으로 안걸리게 하는 기능은 없나요?

심상호(shimsh)님이 2010-10-18 12:18에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8720[질문] 9.1 Streaming Replication 구현중입니다 . -_-;; [1]
롱다리
2010-10-21
7666
87194330번의 문제를 해결해서 삭제하고 싶은데 삭제가 안되네요... [1]
백우진
2010-10-21
7721
8717한달동안 허가된 내용을 날짜별로 뽑는 내용입니다. [1]
백우진
2010-10-21
8336
8716update할 때 deadlock detected error [2]
심상호
2010-10-15
9584
8715해당테이블에 컬럼갯수에 따른 속도차에 대하여 질문. [1]
김현진
2010-10-13
7676
8713Postgre DB X, Y 좌표 구하기
chrh01
2010-10-07
9196
8711CallableStatement를 사용해서 Array 입력 문의입니다. [1]
박재혁
2010-10-01
8619
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다