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 7590 게시물 읽기
No. 7590
commit 전에 insert 하고 그 currval 을 구할수 있나요?
작성자
멍기사
작성일
2009-01-23 12:30
조회수
7,276

제목 그대로 입니다

begin 후에 인서트가 여러번 일어나는데 모두 성공했을때 commit 을, 하나라도 실패하면 rollback 을 합니다.

근데 여러번 발생되는 인서트중 하나가 성공하면 그 row 의 currval 이 그다음 인서트에서 필요한데,

혹시 commit 이 되기전에는 currval 이 적용되는지 궁금합니다

 

고수님들 조언 부탁드려요~

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

참고 : http://www.postgresql.org/docs/8.3/interactive/functions-sequence.html

CREATE SEQUENCE teabl_1_s
    START 1
    INCREMENT 1
    MAXVALUE 99999999999999
    MINVALUE 1
    CACHE 1;
   
select
       setval('teabl_1_s', 10 , false ) ,
       nextval('teabl_1_s') ,
       nextval('teabl_1_s') ,
       nextval('"teabl_1_s"') ,
       lastval();
       

CREATE TABLE dept
(
  dept_id character varying(18) NOT NULL,
  dept_name character varying(18),
  CONSTRAINT pk_dept_id PRIMARY KEY (dept_id)
)


begin;
delete from dept;
rollback;


begin;
INSERT INTO dept(dept_id, dept_name) VALUES (nextval('teabl_1_s'), 'h부서');
INSERT INTO dept(dept_id, dept_name) VALUES (nextval('teabl_1_s'), 'h부서');

commit;



하기와 같이 테스트 해보았는데요..
시퀀스 값은 commit 과 상관없이 증감되어 지네요..
 
   

 

 


 
hhh님이 2009-02-17 13:12에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7595postgreSQL에서 DB에 동영상파일 담는법.. [1]
김민주
2009-01-27
6981
7594- [2]
압피
2009-01-26
6590
7592웹서버와 DB서버가 분리되었을 때의 pgfouine사용 [2]
초보
2009-01-23
6667
7590commit 전에 insert 하고 그 currval 을 구할수 있나요? [1]
멍기사
2009-01-23
7276
7589- [4]
압피
2009-01-19
6305
7588PostgreSQL 제대로 지원하는 ER 모델러 없나요??? [1]
최정대
2009-01-19
7071
7587UnixWare 7.1.2 PostgreSQL 구동 시 커널 파라미터 권장값? [2]
김대청
2009-01-12
7188
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.030초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다