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 1482 게시물 읽기
No. 1482
한 테이블에 Primay Key 를 두개 지정하는경우?
작성자
윤세민(seminz)
작성일
2004-08-13 03:19
조회수
17,154

한 테이블에 Primary Key를 두개 지정하는거셍 대해 질문을 드리려고 합니다.

 

mssql에서 쿼리 분석기를 통해 테이블을 생성할경우 primary key를 두개의 컬럼에 붙여넣을수 있습니다.

 

더 많은 것에되는지는 가물가물.!

 

하여튼! 그런데 그냥 테이블 생성기를 통해서 생성할경우 primary key는 하나만 되죠. 음.!

 

여기서 primary key를 두개를 쓸필요가 없다인가요? 아니면 두개의 필요성에 대해서

 

답변 부탁드립니다.

 

ex)

 

create table User

(

idx int,

id varchar(32),

primary key(idx,id)

)

 

이렇게 말이죠. 음! primary key는 원래 하나만이었나-- ..!그럼답변 부탁드립니다.

 

즐거운시간되세요.

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

어떤 테이블이던  Primary key 는 하나 밖에 지정되지 않습니다.

두개의 Primary key 를 인정하지 않습니다.

 

말씀하신 primary key (idx,id) 는 다중컬럼에 대해서 primary key 를 지정한 것입니다. 테이블 구성을 하다 보면 이런 경우가 할수 없이 발생하는 경우가 있습니다. 이렇게 다중컬럼에 대해서  primary key 를 지정한다고 해서 안될 것은 없습니다.

단지 이럴 경우 당연히 idx + id 필드에 대해서 primary key 설정이 되기 때문에 필드 길이가 너무 길지 않아야겠지요. 잘못하면 효용성이 떨어지는 경우가 있습니다. 물론 이런 경우도 primary key 는 하나입니다.

 

개인적인 생각으로는 될수 있으면 하나의 필드에 대해서 primary key 를 지정할 수 있는 방향으로 테이블 구성을 하시는것이 좋을 것 같습니다. 하지만 모델링상 할수 없이 다중컬럼에 대해서 primary key 를 설정해야 한다면, 할수 없는 것이 아닌가 생각합니다.

정재익(advance)님이 2004-08-13 08:41에 작성한 댓글입니다.

primary key(pk)의 지정을 하기 위해서는

당연 column은 not null로 되어야 합니다.

 

아래는 pk를 두개 이상하는 sql의 예입니다.

참고하십시요.

 

CREATE TABLE [youly_test] (
 [userid] [varchar] (20)  NOT NULL ,
 [username] [varchar] (20)  NULL ,
 [jumin_no] [varchar] (20)  NOT NULL ,
 
) ON [PRIMARY]
GO

ALTER TABLE [youly_test] ADD
 CONSTRAINT [PK_PANEL] PRIMARY KEY 
 (
  [userid], [jumin_no]
 ) WITH FILLFACTOR =90 on    [PRIMARY]
GO

여리님이 2004-08-13 10:36에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1486도와주세요..부탁드립니다. 일주일째 고생중 [1]
이각훈
2004-08-15
3134
148510초걸리는 Select 쿼리실행시 5초에서 중단되어도
김인태
2004-08-13
2487
1484DB자료 이전에 대한 조언을 부탁드립니다. [1]
안용찬
2004-08-13
3264
1482한 테이블에 Primay Key 를 두개 지정하는경우? [2]
윤세민
2004-08-13
17154
1481다단계 조직도 테이블 구조 또는 쿼리방법(고수님의 도움 급요) [2]
김영목
2004-08-12
6500
1480MySQL의 자료를 MS-SQL로 옮기는 방법이 궁금합니다.(초보라 좀 생소해서요) [1]
안용찬
2004-08-12
2806
1479datename(datename,getdate()) 에 대해서.. [1]
김민영
2004-08-12
3456
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다