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 5101 게시물 읽기
No. 5101
순차적인 UPDATE를 한방에 할수는 없나요??
작성자
재학
작성일
2003-12-15 17:58ⓒ
2003-12-15 18:00ⓜ
조회수
1,606

tbtest라는 테이블에 no라는 칼럼이 있습니다.

이 no라는 칼럼에는 순차적으로 1, 2, 3, 4, 5, 6 이렇게 값이 들어가 있는데...

이것을 SELECT 해 보면

select no from tbtest

 

no

--

1

2

4

5

3

6

 

이렇게 지멋대로 나온다고 가정하고 이때

update tbtest set no = no + 1

이렇게 업데이트를 하면

ERROR: Cannot insert a duplicate key into unique index tbtest_uniq

이런 에러가 납니다...

물론 이 no라는 칼럼은 unique로 선언되어있습니다.

 

 

지금 상황으로는 select시에 order by를 주어 이걸 순차적으로 가져온 다음

그 갯수만큼 update를 해주어야만 할것같은데...

이걸 쿼리 한방에 해결 할수는 없을까요??

 

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

뭐에 저런 것을 쓰는 지는 모르겠지만,

가장 손 쉽고, 위험하게 처리하는 방법은

unique index를 지우고, update 하고, 다시 unique 인덱스를 만드는 방법일듯싶습니다. :) 적어도 세개의 쿼리는 필요하겠네요.

 

가장 어렵고 가장 안전하게 하는 방법은, 저 작업이 분명 다른 작업 때문에 저런 작업을 하는 것 같은데, 이 변경 작업의 원인이 되는 테이블에 트리거를 걸어두고, 그 테이블의 자료 조작으로 이 테이블이 자동으로 업데이트하게 하는 방법이겠지요.

 

김상기(ioseph)님이 2003-12-15 18:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5104pgAdminIII에서는 암호화된 데이타는 안보이나요? [6]
시나브로
2003-12-19
1503
5103[질문] '똥통휴지'와 '바보바보'는 같다? [4]
임유빈
2003-12-16
1931
5102서버레벨에서 prepare 유지하는 방법 없을까요? [1]
신기배
2003-12-16
1193
5101순차적인 UPDATE를 한방에 할수는 없나요?? [1]
재학
2003-12-15
1606
51007.3.x 버전으로 자료 이전 하기 참고.
김상기
2003-12-15
1498
5099사용자 함수를 공유할려면? [2]
초보
2003-12-13
1388
5098DSN에 사용된 소스에 관해.. [1]
부엉
2003-12-12
1248
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다