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 6623 게시물 읽기
No. 6623
row 번호를 찾으려면...
작성자
아즈샤라(knox0210)
작성일
2006-04-14 09:55ⓒ
2006-04-14 09:57ⓜ
조회수
2,778

temp 라는 테이블이 있습니다.

 

data | file

------------

a | a.txt

b | b.txt

c | c.txt

d | d.txt

e | e.txt

f | f.txt

g | g.txt

 

위 처럼 두가지 column(data , file) 이 있고 7개의 데이타가 들어 있는데요

할려고 하는게 row의 번호를 가져와서 그 row 에 있는 데이타만 update 를 할려고 하는데요

row 번호를 알수 있는 방법좀 부탁 드립니다.

예를 들면 a 의 row 번호는 0....f 의 row 번호는 5를 나타낼 수 있는 함수나 명령문 등등...

경험하신 분이나 아시는 분께서는 조언 부탁드립니다.

감사합니다

 

 

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

이런경우 serial 타입을 하나 넣고 그것을 키로 사용했었더라면 간편한 문제인데... 0, 1, 2, 3, 이렇게 꼭 연속된 숫자일 필요없이 단순 업데이트나 SELECT만 사용할 경우라면 oid를 이용하셔도 될듯 합니다..

 

select oid, * from temp;

update temp set file='new data' where oid=123456;

최정대(whitekid)님이 2006-04-14 10:58에 작성한 댓글입니다.

table에 pk를 안 만드셨군요. pk는 꼭 만드시는 것이 좋습니다.

다행이 pgsql에는 oid라는 것이 있어서 table을 만들 때에 특별히 명시하지 않는 한 컬럼마다 4바이트의 oid라는 id가 부여됩니다. 이것을 이용하면 원하시는 것을 구현하실 수는 있을 것 같습니다.

그런데 문제가 oid라는 것이 특정 table마다 따로 부여되는 번호가 아니고 전체 DB에서 고유한 값이기 때문에 그렇게 넉넉하지 않습니다. 전체 DB의 모든 객체(테이블, 컬럼 등) 각각에 부여되는 4바이트 id 코드이니까요. 따라서 table을 만들 때에는 oid를 포함하지 않도록 해서 table에만 oid가 부여되고 컬럼에는 부여되지 않도록 하는 것이 좋습니다. 이렇지 않더라도 이식성등을 위해서 pk를 직접 만드시는 것이 옳은 방법 같아 보이네요.

박성철(gyumee)님이 2006-04-14 11:24에 작성한 댓글입니다.
이 댓글은 2006-04-14 11:26에 마지막으로 수정되었습니다.

최정대님 박성철님 답글에 정말 감사드립니다.

pk와 oid 모두 값이 있었는데 그 값들이 너무 길어서 사용 할 수가

없었습니다. 설명은 안드렸었지만 제가 사용할 수 있는 값이

4 바이트만을 사용 할 수가 있거든요...

그래서 생각 했었던게 row 번호였습니다.

그런데 최정대님 말씀처럼 serial 타입으로 column 을 추가시켰더니

랜덤하게 번호를 순차적으로 선정을 하더군요...

그래서 해결이 되어버렸네요...

저도 serial 타입 문서 부분을 읽고 있었는데...ㅎㅎㅎㅎ

(제가 시스템 프로그램만을 해서 서버 관련 부분을 잘 모릅니다..ㅎㅎ)

담부턴 질문을 할땐 설명을 좀더 충실하게 해야 겠네요...ㅎㅎ

그리고 답변에 감사드립니다...기분이 좋네요..오늘 회사 지각했었는데..ㅋ

수고하세요...

아즈샤라(knox0210)님이 2006-04-14 11:46에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6631중복제거 및 원하는 정열순서 쿼리 질문입니다. [1]
이승택
2006-04-20
2825
6630plpgsql function 설정 관련 [2]
영수
2006-04-20
2909
6626인덱스에 관해 [4]
조진우
2006-04-17
2565
6623row 번호를 찾으려면... [3]
아즈샤라
2006-04-14
2778
6622인코딩 문제점 [1]
김진홍
2006-04-14
2713
6619날짜 생성 함수 [2]
강성일
2006-04-13
3186
6618이에러를 어떻게 해야 하죠 [2]
곽상옥
2006-04-13
2227
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.015초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다