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
운영게시판
최근게시물
DB2 Q&A 1102 게시물 읽기
No. 1102
자동으로 증가되는 문자열 만들려면 어떻게 하나요?
작성자
강성경(bioman1212)
작성일
2006-09-14 14:04ⓒ
2006-09-14 14:09ⓜ
조회수
9,324

자동으로 문자열이 증가됩니다.

형식은 아래와 같습니다.

칼럼의 데이터타입은 CHAR(5)입니다.


A0001

A0002

A0003


이런식으로 키값이 증가되어야 하는데..


어떻게 하는지 도와주세요.

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

char(1)||char(숫자(4자리)) 이고 char(숫자(4자리))는 1씩 증가 ?
이게 맞나요?  
그렇다면 앞의 char(1)은 어떻게 지정하나요?

=================================

  max값을 읽어서 +1을 하는 방법 ( 여러개의 application들이 동시에 실행할 경우의 locking 문제를 해결하기 위해 select시 for update 를 사용) 

   아래의 2 sql을 하나의 transaction에서 실행하도록 하면 될것같습니다. 

   select max(c1) from tab  where c1 like 'A%' for update;
   으로 A로 시작하는 max 값을 얻은 다음 insert 문장에서 사용해보세요
   insert into tab ('A'||substr(digits(int(substr(c1,2,4))+1),7,4));
   commit; 

  A가 무엇인지는 모르겠지만 분리를 하면 더 쉬울듯합니다.
  select시 예를 들기 위해 like 'A%'라고 했는데 data가 증가하면 index를 못하고 fullscan을 하게 됩니다. 단순히 숫자 char만 있다면 create index시 
 해당 컬럼에 desc option을 줄 수 있습니다. 이렇게 해주면 max 한 row만 읽을 수 있습니다.

 분리를 한다면 컬럼을 자동으로 증가시키는 generate column option을 사용할 수도 있습니다.  - (create table,alter table에서 제공 )
 
  "일련번호" DECIMAL(15,0) NOT NULL GENERATED ALWAYS AS IDENTITY ( 
                    START WITH +1 
                    INCREMENT BY +1 
                    MINVALUE +1 
                    MAXVALUE +999999999999999 
                    NO CYCLE 
                    CACHE 20 
                    NO ORDER ) )   
 
  그리고 db에서 제공하는 sequence를 사용하는 방법도 있습니다.
도님이 2006-09-14 14:47에 작성한 댓글입니다.
이 댓글은 2006-09-15 13:44에 마지막으로 수정되었습니다. Edit

도님...

무슨 말씀이신지 모르겠습니다..


insert할때 위처럼 자동으로 증가되게 할려고 하는데 어려워서 질문드렸습니다.

강성경(bioman1212)님이 2006-09-15 09:51에 작성한 댓글입니다.
이 댓글은 2006-09-15 09:52에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
1105정말 궁금합니당. 가르쳐 주세요. db2cmd [1]
송지영
2006-09-16
7656
1104정말급합니다. 도와주세요 ㅠㅠ delete [1]
김원명
2006-09-14
13065
1103클라이언트 OLEDB및 ODBC드라이버 설치본 만들기? [1]
5기
2006-09-14
7685
1102자동으로 증가되는 문자열 만들려면 어떻게 하나요? [2]
강성경
2006-09-14
9324
1101DB2에 오라클의 LEAD,LAG에 해당하는 함수가 있는지요? [1]
김강환
2006-09-13
10256
1100함수를 만들려고 하는데요...이렇게는 안된다고 하네요... [2]
DB2초보
2006-09-12
7962
1099수세리눅스 DB2설치 [1]
이종민
2006-09-12
6793
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다