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 7678 게시물 읽기
No. 7678
create function 내에 BEGIN TRANSACTION 처리
작성자
박춘삼
작성일
2009-04-08 16:13ⓒ
2009-04-08 16:27ⓜ
조회수
7,246

create function BEGIN 문안에 BEGIN TRANSACTION 처리를 어떻게 하는지 궁금합니다.

예를 들어 아래와 같이 한 경우

create table dw.sp_test (aa int, bb char(8));
create table dw.sp_test1 (aa int, bb char(8));
create table dw.sp_test2 (aa int, bb char(8));

insert into dw.sp_test values (1, '20090101');
insert into dw.sp_test values (2, '20090102');
insert into dw.sp_test values (3, '20090103');
insert into dw.sp_test values (4, '20090104');
insert into dw.sp_test values (5, '20090105');
insert into dw.sp_test values (6, '20090106');
insert into dw.sp_test values (7, '20090107');
insert into dw.sp_test values (8, '20090108');
insert into dw.sp_test values (9, '20090109');
insert into dw.sp_test values (10, '20090110');

create or replace function dw.samp_tran() RETURNS CHAR AS $$
begin
  BEGIN ; -> 이게 안 되는군요
    insert into sp_test1 select * from sp_test;
    delete from sp_test;
    insert into sp_test2 select * from sp_test1;
  COMMIT; -> 역시 안 되는 군요
  RETURN 'TRANS TEST'; 
end;
$$ LANGUAGE plpgsql;

고언을 부탁 드립니다.

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

plpgsql 안에서는 트랜젝션을 시작하거나 끝낼 수 없습니다.

언제나 이 함수가 호출된 상황의 트랜젝션 정책에 따라 작동합니다.


만약 오류시 rollback 하기 원하신다면 BEGIN ... EXCEPTION ... END; 구문을 사용해보세요.

박성철(gyumee)님이 2009-04-13 14:13에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7682특정 db에 통째로 select 권한을 줄수 없나요? [3]
문태준
2009-04-13
8281
7681메모리 때문일까요? [4]
souler
2009-04-12
6700
7679pgpool 관련 질문 드립니다
김태규
2009-04-09
7365
7678create function 내에 BEGIN TRANSACTION 처리 [1]
박춘삼
2009-04-08
7246
7677BITAND [1]
박춘삼
2009-04-08
7005
7676쿼리를 어떻게 만들면 빠르게 조회가 가능할까요. [1]
이기자
2009-04-06
6691
7674Bindings were not allocated properly 팝업이... [1]
2009-04-03
6803
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다