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 1111 게시물 읽기
No. 1111
insert문에서 서브쿼리 사용
작성자
김영주
작성일
2006-09-22 15:01
조회수
8,932

create table tset ( id char(20), name varchar(10) )

의 테이블이 존재합니다.


실제로 하고 싶은것은 시퀀싱을 하고 싶은데... DB2에서 char타입은 시퀀싱이 안되는거 같더군요...


그래서 max값을 구해서 +1 해주는걸로 해볼 생각입니다만..


여기서 또 문제가 생겼네요..


insert into test values( (select bigint(max(id))+1 from test), '나야나' ) 이런식의 쿼리를 하고 싶은데...


DB21034E  The command was processed as an SQL statement because it was not a

valid Command Line Processor command.  During SQL processing it returned:

SQL0408N  A value is not compatible with the data type of its assignment

target.  Target name is "ID".  SQLSTATE=42821


이런식의 에러가 나는군요...


char타입은 시퀀스를 못쓰나요?

못쓴다면 위와 같은 insert쿼리는 어떻게 해야하나요?

그리고 char(20) 인데 bigint는 20자리로 형변환이 안되더라구요... 다른방법이라도 있나요?

물런 20자리까지 채워질지 아닐지는 모르지만요.


많이 배워가겠습니다. 도와주세요 ^^

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

죄송합니다.. 일단 insert는 되는군요..

insert into test values (select char(bigint(max(id))+1) from test)

이런식으로 다시 char형으로 변환해서 insert를 하니 되는군요..

그런데 999999999999999998에서 +1하면 정상적으로

             999999999999999999가 되고 +1 하면

            1000000000000000000이 됩니다만... 여기서 +1 하면 그대로네요..


역시 bigint형의 한계인가 봅니다...이렇게말고 char형을 시퀀스 하는 방법은 없을까요?

김영주님이 2006-09-22 15:24에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1118select 문에 대해서 여쭤볼게 있습니다... [4]
db2
2006-10-02
7751
1117DB2로 쿼리 좀 바꿔주세요. rownum, order by [2]
송유라
2006-09-29
10434
1113간단한 쿼리문 질문드립니다. [2]
김영주
2006-09-25
8721
1111insert문에서 서브쿼리 사용 [1]
김영주
2006-09-22
8932
1110소문자로 보이는 스키마는 어떻게 생성을 합니까? [1]
db2
2006-09-22
7476
1109쿼리 질문.. 상위1값 구하기 [2]
하늘
2006-09-22
7318
1108Excel File 업로드 Web에서. [1]
정병용
2006-09-19
8743
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.032초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다