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
운영게시판
최근게시물
MS-SQL Q&A 3707 게시물 읽기
No. 3707
초보인데 아예 갈피를 못잡겠어요 도와주세요 ㅜ.ㅡ
작성자
윤현수
작성일
2007-08-25 16:19
조회수
2,410

제가 너무나 초보이기때문에 제가 직면한 문제를 해결하는 방법이 있는지 없는지, 

방법이 있다면 쉬운 것인지 어려운 것인지 조차 모르는 초보입니다.

일단 말씀드리자면 이렇습니다.

회원테이블이 있구요. 회원테이블에는 회원번호를 갖는 컬럼이 있습니다.

회원번호는 자동으로 0부터 1씩 증가하게끔 만들었구요

=============================================
만약에 5개의 회원을 insert했다면 테이블이 이렇잖아요
0    정우성    서울
   김태희    부산
2    한지혜    강원
3    장동건    제주
   남상미    충청
=============================================

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

이 상태에서 회원번호가 2인 한지혜를 빼게 된다면 남은 사람의 회원번호는 0,1,3,4잖아요
=============================================
0    정우성    서울
   김태희    부산
3
    장동건    제주
   남상미    충청 
=============================================

 

=============================================
그런데 저는 이런결과를 얻고 싶습니다. 남은사람의 회원번호가 0, 1, 2, 3이 되게끔요
0    정우성    서울
   김태희    부산
   장동건    제주
   남상미    충청
=============================================


뭐 꼭 회원번호 컬럼이 이렇게 되지 않아도 되구요

따로 컬럼을 새로 만들어서 그 컬럼에

회원을 삭제해도 순차적인 숫자가
들어가는 걸 원합니다.

이거를 해결 할 수 있는 방법이 있나요?

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

보통 회원 테이블만 존재하는게 아니라,
회원 번호를 참조하는 기타 다른 테이블도 많을거라 봅니다.
그런데 회원번호가 삭제 될때 마다 번호가 변경 된다면 문제가 많습니다.
보통 회원의 정보는 삭제를 하지 않고 사용 중지를 거는게 좋을 듯 합니다.  

지나가다가님이 2007-08-27 14:03에 작성한 댓글입니다. Edit

윗분 말씀대로 회원의 고유키 값을 저렇게 변경하는 것은 문제가 많아 보입니다.

방법은 알려 드리겠습니다.

한지혜 분을 일단 삭제할 때 해당 키 값이 2번이니까...

delete from 회원테이블 where no = 2

그리고 2보다 큰 키 값을 가지는 것들은 모두 -1을 해주시면 됩니다.

update 회원테이블 set no = no - 1 where no > 2

문제는 회원이 많아질수록, 또 키 값이 작은 것을 삭제할 때는 문제가 많이 발생될 소지가 있다는거지요. 몇 개 안 될 때는 위와 같이 이용하셔도 되며 절대 고유키 값은 저런 식으로 활용하지 마시길...

지나가다님이 2007-08-29 08:59에 작성한 댓글입니다. Edit

회원데이터가 몇개 안된다고 해도 키값을 변경하는 것은 데이터RI를 깨치는 일이 될 듯하군요.

만약 김태희로 이력등의 데이터가 회원번호를 저장하면서 생성된 경우,

키 값을 변경하는 것은 관련 이력성 데이터들을 모두 찾아 같이 변경해줘야 데이터관계가 맞을겁니다.

키 값은 보통 삭제 후 인서트로 관리하지 변경으로 관리하지 않습니다. 참고하세요.


건승하시길...수고하세요~~ 

성시현(finecomp)님이 2007-08-29 09:47에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3713mssql 을 엑셀 파일로 백업 하는데요..
윤두진
2007-08-29
2722
3712삭제된 db 복원후 db 연결이 안될경우
골뱅이
2007-08-28
3722
3709dbcc indexdefrag 실행에 대한 질문 입니다.
rira702
2007-08-27
2514
3707초보인데 아예 갈피를 못잡겠어요 도와주세요 ㅜ.ㅡ [3]
윤현수
2007-08-25
2410
3704파티션 테이블 백업
고형석
2007-08-24
2203
3703쿼리 질문올립니다. [1]
코시
2007-08-24
2206
3702복제설정을 한 디비를 백업하여 복원하면.
복제
2007-08-23
2331
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다