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
운영게시판
최근게시물
MySQL Q&A 28063 게시물 읽기
No. 28063
[질문] mysql 에서 시퀀스의 NextVal을 구현하는 방안
작성자
김선아(unexpected)
작성일
2009-03-03 17:07
조회수
11,570

A프로그램을 통해 외부에서 임의의 정보가 수신되면 해당 정보를 테이블에 입력을 하고, 해당정보의 KEY가 되는 데이타를 B프로그램으로 전달을 합니다.

그러면 B프로그램은 전달받은 KEY를 이용하여 테이블에서 정보를 읽어서 업무처리를 하게 됩니다.

 

오라클에서는 A프로그램에서 Sequence Nextval을 이용해서 KEY를 생성하고, 해당 KEY를 포함시켜서 해당정보를 테이블에 입력하고, KEY를 B프로그램으로 전달을 하고 있습니다.

 

Mysql에서는 시퀀스가 auto_increment되다보니 A프로그램에서 주체적으로 KEY를 활용할 수 없는듯 합니다.

 

auto_increment될 경우 생성된 해당 숫자를 리턴하는 것도 아니라서 KEY로 활용이 어렵습니다.

 

A프로그램에서 입력하고 최종입력된 ROW를 읽는것도 생각을 해봤지만, A프로그램은 웹페이지처럼 다수입니다.

 

하나의 A프로그램에서 입력하고, 최종입력정보를 읽는 사이에 다른 A프로그램들에서 입력을 하게되면 최종입력정보가 바뀔것 같습니다.

 

도통 방안을 모르겠네요....고수님들의 경험이나 방법이 있으면 알려주시면 고맙겠습니다.

 

이 글에 대한 댓글이 총 3건 있습니다.
MySQL 5.1.12 이상에서 다음 기능을 지원하네요 :  SELECT LAST_INSERT_ID();

http://dev.mysql.com/doc/refman/5.1/en/information-functions.html#function_last-insert-id
구헌수(madcat)님이 2009-03-03 20:33에 작성한 댓글입니다.

최후(최악?)의 방법으로는 테이블 락 거신 다음에 인서트하시고, SELECT MAX(ID) 하신 후에, 락을 푸세요.
권장해드리고 싶은 방법은 아닙니다만, 다른 뾰쪽한 수가 있을까요...

박현우(lqez)님이 2009-03-04 17:13에 작성한 댓글입니다.

상위버전일 경우는 헌수님 말씀처럼하시면될듯하구요

하위버전일 경우 lock을 이용하시거나 별도의 데몬을 만드셔서 중개를 해야할듯합니다. 별다른 수가 없는듯하네요

박성원(darkancia)님이 2009-03-05 10:36에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
28067원격 접속 질문 입니다.(초보) [2]
최명권
2009-03-05
5222
28066mysql 백업 복구시 한글 깨짐 문제입니다... [1]
김정석
2009-03-04
8141
28064[급질문] Mysql에서도 가능한지 여쭤보고 싶습니다. [4]
레미리버
2009-03-03
5069
28063[질문] mysql 에서 시퀀스의 NextVal을 구현하는 방안 [3]
김선아
2009-03-03
11570
28062초보 중복쿼리.. 답변부탁드려요..
이종근
2009-03-02
5053
28061delete로 테이블 전체를 날렸습니다. ㅠㅠ [3]
김진호
2009-03-02
4945
28060캐릭터셋 당신의 그 위대함은 ㅡㅡ;; (문자열 인식불가에 대한 문의)
박성원
2009-03-02
5208
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다