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 10285 게시물 읽기
No. 10285
commit 사용 ( 프로시저, 함수) 예제
작성자
lucky
작성일
2021-10-14 12:27
조회수
1,479

보관도 할겸 예제 올려드립니다. 


postgresql v.11 부터 지원하는 듯 합니다. 


https://www.2ndquadrant.com/en/blog/postgresql-11-server-side-procedures-part-2/



drop table if exists test1 ; 


CREATE TABLE test1 (a int);


CREATE PROCEDURE transaction_test1()

 AS $$

 BEGIN

     FOR i IN 0..9 LOOP

         INSERT INTO test1 (a) VALUES (i);

         IF i % 2 = 0 THEN

             RAISE NOTICE 'i=%, txid=% will be committed', i, txid_current();

             COMMIT;

         ELSE

             RAISE NOTICE 'i=%, txid=% will be rolledback', i, txid_current();

             ROLLBACK;

         END IF;

     END LOOP;

 END

 $$

 LANGUAGE PLPGSQL;



CALL transaction_test1();



SELECT xmin,* FROM test1;

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

 

100만개 이상의 데이터를 건단위로 commit 되는 

테스트 프로그램을 짜야 하는데 

pg v.10 이라서 고민입니다. 


 

lucky님이 2021-10-14 12:29에 작성한 댓글입니다.
이 댓글은 2021-10-14 12:30에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
10289프로시저 wait로 인한 서비스 지연 발생 시 어떤문제를 의심할 수 있을까요?(replication 구성) [2]
우재권
2021-10-22
1350
10287xpath 오류 질문입니다. [1]
xpath
2021-10-20
1279
10286replication 방식에 대해 질문드립니다 [2]
cella
2021-10-16
1563
10285commit 사용 ( 프로시저, 함수) 예제 [1]
lucky
2021-10-14
1479
10284PgDay.Seoul 2021 온라인 행사 발표자 모집 안내
김상기
2021-10-13
1472
10283Postgre SQL shared_buffers에 대하여 [1]
맥스
2021-10-08
1396
10281postgresql 인덱스명을 변경할 수 있는지? [2]
탁공
2021-09-30
1562
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다