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 1532 게시물 읽기
No. 1532
[질문] identity 사용법 및 순번자동증분법 [완료됨]
작성자
김찬수(sqlkim)
작성일
2004-09-07 12:01ⓒ
2004-09-22 11:05ⓜ
조회수
4,870

데이블을 아래와 같이 생성한 후

 

CREATE TABLE [테이블1] (

[대분류] [int] NOT NULL ,
[소분류] [int] IDENTITY (1, 1) NOT NULL ,
[명칭] [varchar] (20) COLLATE Korean_Wansung_CI_AS NOT NULL ,

 

CONSTRAINT [pk_id] PRIMARY KEY CLUSTERED
(
[대분류],
[소분류]
) ON [PRIMARY]
) ON [PRIMARY]
GO

 

저장하면 아래와 같은 결과가 나옵니다.

대분류 소분류 명칭

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

1 1

2 2

1 3

2 4

3 5

 

제가 간절히 원하는 결과는

대분류 소분류 명칭

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

1 1

2 1

1 2

2 2

3 1

위 결과 처럼 대분류를 수동으로 입력하고 대분류에 따른 소분류의

자동 순번 부여입니다.

즉, 대분류 1에 대한 소분류 1~999999999... 까지 자동분류되고

대분류 2에 대한 소분류 1~999999999... 까지 자동분류되고

대분류 X에 대한 소분류 1~999999999... 까지 자동분류되는

처리를 하고자 합니다.

 

편법으로 대분류 1에 대한 소분류의 Max 값을 얻는 방법이 있으나

동시에 접속한 사용자가 등록으로 하면 논리적으로 중복되어 문제가 될 것 같구요

 

중복데이터가 발생하지 않으면서 확실히 위 문제를 해결할 수 있는 방법을 알려주세요

 

부탁드립니다.~

 

고수님들께서 방법을 알려주시면 대단히 행복한 하루가 될 것 같습니다.

 

 

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

각 대분류별 현재 순번를 관리하는 별도의 순번 테이블을 사용하세요.

그러시면 Max를 이용하시는 방법보다도 더 좋은 성능을 얻을 수

있습니다.

 

create table tseq
(
  lgroup int  primary key
,  mgroup int default(0)
);

 

 

Declare @seq int
           ,@lgroup int


SET @lgroup = 20000 ; 


UPDATE tseq
 SET @seq = mgroup=mgroup  + 1
 WHERE lgroup = @lgroup;

 

 IF @@rowcount =0   --순번테이블에 대분류 정보가 없을 경우 새로 생성
   BEGIN
      INSERT INTo tseq(lgroup,mgroup) values(@lgroup,1);
      SET @seq = 1;
   END

 

 

INSERT INTO  테이블1(대분류,소분류,명칭)

  VALUES(@lgroup,@seq,'dddd');

 

select *
from tseq
where lgroup = @lgroup


 

 

fall97님이 2004-09-07 12:38에 작성한 댓글입니다. Edit

감사합니다.

 

fall97님 덕분에 행복한 하루되었습니다.

 

fall97님도 행복하세요

 

 

김찬수님이 2004-09-07 13:37에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1535Like절에서 Index사용 여부... [2]
알바트로스
2004-09-07
3487
1534[급 !! 질문]한자 깨짐 현상 ? [2]
이리
2004-09-07
2532
1533두개의 테이블을 엮어서 쿼리를 만들어야 합니다
권기찬
2004-09-07
2400
1532[질문] identity 사용법 및 순번자동증분법 [완료됨] [2]
김찬수
2004-09-07
4870
1531꼭좀 도와주세요~ 회원가입시에 말이예요...
dofh
2004-09-07
1928
1530count()와 group by 와 left join 에 관한 질문입니다. [1]
beMax
2004-09-06
3035
1529중복레코드를 unique하게 만드는 방법알려주세요~ [1]
guest
2004-09-06
2691
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다