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 1489 게시물 읽기
No. 1489
Re: Re: Re: 답변 감사드리구요 ! 한가지 더 질문 드릴까 합니다.
작성자
정재익
작성일
2000-07-31 22:49
조회수
8,969

> > 어디선가 이미 Transaction 을 열고 실행중인 것 아닌가요. 하나의 transaction 내에서 다중 transac

> ti

> > on 을 지원하지 못합니다. (현재 PostgreSQL 의 제한점입니다)

> > 앞에서 부터 차근차근 실행해 보시기 바랍니다.

> > 만약 새로운 transaction 을 무조건 시작해야 한다면 BEGIN 앞에 COMMIT 를 넣어 주시기 바랍니다.

> >

> > > c 소스중에 db 연관부분 입니다.

> > >

> > > #include <ecpglib.h>

> > > #include <string.h>

> > > #include <stdlib.h>

> > >

> > > EXEC SQL INCLUDE sqlca;

> > > EXEC SQL define NAME_SIZE 20;

> > >

> > > EXEC SQL BEGIN DECLARE SECTION;

> > > varchar name[NAME_SIZE+1];

> > > EXEC SQL END DECLARE SECTION;

> > >

> > > EXEC SQL CONNECT TO 'test';

> > > EXEC SQL BEGIN TRANSACTION;

> > > EXEC SQL INSERT INTO KO(name) VALUES(:name);

> > > EXEC SQL COMMIT;

> > > EXEC SQL DISCONNECT;

> > >

> > > 위 구문을 for 문으로 돌려서 insert를 시켰더니 다음과 같은 내용이 출력됩니다.

> > > 어떤 이유에서 인지 답변좀 해주세요..

> > >

>

> > > NOTICE: BEGIN: already a transaction in progress

> > >

>

>

> 그런가요! 제가 지금 두개의 서버 프로세스에서 1초에 3번정도 DB insert 작업을

> 하거든요. 앞단에 COMMIT;을 넣어도 같은 메시지가 나오네요.. ㅠ_ㅠ

> 해결 방법이 없는건가요. 아주 중요한 문제거든요.. 근데 이상하게도 DB 에는 내용이 들어가 있으니

> 허허..해결방법이라던지 아님 다른 조언좀 해쥐세요..

 

만약 꼭 그렇게 나온다면 일단 Concurrency control 이 문제가 될 소지가 많군요.

트랜젝션의 시작 전후에 테이블 락을 시켜 주고 작업후 테이블 언락을 시키는 것이 좋지 않을까요?

 

lock table table_name to row exclusive mode

begin

.....

commit

lock table table_name to row share mode

 

대략 이런 정도의 흐름으로 하면 되지 않을까요?

[Top]
No.
제목
작성자
작성일
조회
1493SQL 참고서적 추천좀
김성현
2000-08-01
9591
1504┕>Re: SQL 참고서적 추천좀
Mr.Ha
2000-08-03 21:30:29
9429
1491지운 레코드 살릴 수 있는 방법은요?
김상기
2000-08-01
8048
1492┕>Re: 지운 레코드 살릴 수 있는 방법은요?
정재익
2000-08-01 04:42:33
8502
1496 ┕>Re: Re: 복구해 내기는 했습니다.
김상기
2000-08-02 04:19:07
8206
1503  ┕>Re: Re: Re: 복구해 내기는 했습니다.
정재익
2000-08-03 19:55:33
8138
1487[질문]index를 새로만들고 기존에 있던 index를 지우면 어떤 data는 select해도 안나타납니다.
왕그지
2000-07-31
8235
1490┕>Re: [질문]index를 새로만들고 기존에 있던 index를 지우면 어떤 data는 select해도 안나타납니다.
정재익
2000-07-31 22:53:45
8907
1494┕>Re: [질문]index를 새로만들고 기존에 있던 index를 지우면 어떤 data는 select해도 안나타납니다.
이성주
2000-08-01 20:06:31
8899
1483transaction 에대한 질문 입니다
송봉준
2000-07-29
8156
1486┕>Re: transaction 에대한 질문 입니다
정재익
2000-07-29 16:42:03
9296
1488 ┕>Re: Re: 답변 감사드리구요 ! 한가지 더 질문 드릴까 합니다.
송봉준
2000-07-31 16:58:59
8767
1489  ┕>Re: Re: Re: 답변 감사드리구요 ! 한가지 더 질문 드릴까 합니다.
정재익
2000-07-31 22:49:59
8969
1480문자열을 합하려면 어떦 연산자를 써야하는지...
박은경
2000-07-28
8981
1481┕>Re: 문자열을 합하려면 어떦 연산자를 써야하는지...
정재익
2000-07-28 23:35:58
8602
1474postgresql의 copy명령어 오류
박은경
2000-07-28
9294
1477┕>Re: postgresql의 copy명령어 오류
정재익
2000-07-28 13:45:10
9207
1479 ┕>Re: Re: postgresql의 copy명령어 오류
박은경
2000-07-28 16:24:56
8831
1482  ┕>Re: Re: Re: postgresql의 copy명령어 오류
정재익
2000-07-28 23:40:56
9241
1473.. 고수님들.. 이것좀 가르켜줘요~~ ㅠㅠ..
초오보
2000-07-28
7823
1476┕>Re: .. 고수님들.. 이것좀 가르켜줘요~~ ㅠㅠ..
정재익
2000-07-28 13:43:14
8776
1478 ┕>Re: Re: .. 고수님들.. 이것좀 가르켜줘요~~ ㅠㅠ..
초오보
2000-07-28 14:35:04
8350
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.033초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다