sub_title
 MySQL
제   목 MySQL에서 복합 프라이머리키(Composite Primary Key)만들기
작성자 높이뜬새 등록일 2007-09-28 21:40:50 조회수 10,756
MySQL에서 복합 프라이머리키(Composite Primary Key)만들기

※ 경고
높이뜬새의 모르는 사람이 없는 팁시리즈 입니다.
이 팁시리즈는 지면낭비라는 항의시에 즉각 중단됩니다.


이번 팁역시 모르는 사람이 없는 팁입니다. Primary key의 기본조건인 중복되지 않는 키값이 아무리 머리를 굴려도 불가능 할 경우 컬럼하나를 더 포함해서 Composite Primary Key를 만들어야 할때가 있습니다.
MySQL에서는 다음과 같이 합니다.

BirdTable.sql

create table BirdTable (
-----No int not null, /* 새번호 */
-----Birdtype char(1) not null, /*새타입*/

-----Birdname char(20) not null, /* 새이름*/
-----Birdkind char(20) not null, /* 새속성*/
-----....................

-----...................
-----constraint pk_composite primary key(No,BirdType)
);


위에서 pk_composite는 constraint(제약조건)의 이름이고 생략시에는 데이타베이스가 자동으로 할당해 줍니다.
즉 생략해도 가능합니다.

그럼 만약에 테이블생성시에 primary key 만드는것을 잊어버렸다 그럴때는 어떻게 처리할까요? 우리에게는 테이블 변경을 위한 무적의 명령어 alter table 이 있습니다.


※ alter table을 이용한 composite primary key 생성하기
mysql>alter table BirdTable add ( constraint pk_composite primary key( No, Birdtype ));

테이블에 primary key를 변경해야 겠다 그러면 alter table을 이용해서 primary key를 drop 해버리고 다시 만들면 됩니다.


※ alter table을 이용한 primary key 삭제하기
mysql>alter table BirdTable drop primary key;

From : 높이뜬새(www.webmadang.net)

 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
24  MySQL JOIN 걸어서 업데이트(UPDATE) 하기   member 높이뜬새 27 / 3 138931 2010-01-04
23  MySQL flush privileges 명령어 이미지   member 높이뜬새 5 / 0 34473 2009-11-25
22  MySQL 세자리 마다 콤마 찍기 이미지   member 높이뜬새 3 / 0 23757 2009-11-19
21  MySQL 백업시 캐릭터셋(charset) 지정하기   member 높이뜬새 2 / 1 13948 2009-05-27
20  MySQL 에서 root 암호 변경하기   member 높이뜬새 1 / 0 3693 2008-12-23
19  MySQL 테이블 타입(Heap, MyIsam, InnoDB...) 변경하기   member 높이뜬새 1 / 0 8973 2008-09-16
18  MySQL 쿼리 결과 값 세로로 보기   member 컴퓨터존 2 / 0 4618 2008-08-25
17  MySQL 테이블의 구조보기   member 컴퓨터존 0 / 0 4120 2008-08-16
16  MySQL root 패스워드 분실시   member 컴퓨터존 0 / 0 4733 2008-08-14
15  MySQL 에서 랜덤(random)으로 레코드 읽어오기   member 높이뜬새 5 / 0 42491 2008-05-03
14  MySQL에서 오라클의 rownum 구현하기   member 컴퓨터존 1 / 0 7070 2008-05-02
13  MySQL 손상된 테이블 복구   member 높이뜬새 0 / 0 8319 2008-04-15
12  MySQL 백업 및 복구   member 높이뜬새 1 / 0 3948 2008-01-02
11  MySQL의 alter table 명령어 ( foreign key )   member 높이뜬새 4 / 1 25656 2007-12-31
10  MySQL의 alter table 명령어 모음   member 높이뜬새 11 / 1 40506 2007-12-23
9  MySQL 에서 날자표현 방법   member 투명한날 0 / 0 4206 2007-11-20
8  MySQL에서 원격 IP 접속 허용하기   member 높이뜬새 0 / 0 6923 2007-11-19
7  MySQL에서 사용자 권한 주기 (grant 명령어)   member 높이뜬새 5 / 1 51720 2007-11-14
6  MySQL에서 복합 프라이머리키(Composite Primary Key)만들기   member 높이뜬새 0 / 0 10756 2007-09-28
5  MySQL 5.0 버전의 새로운 기능   member 웹스톤 0 / 0 4070 2007-09-27
4  MySQL에서 DB스크립트 사용하기   member 높이뜬새 0 / 0 6998 2007-09-21
3  MySQL 계정생성하기   member 비가오니 0 / 0 4019 2007-09-15
2  실수로 삭제한 mysql DB 복구방법   member 비가오니 0 / 5 25233 2007-09-14
1  [해결방법] win2k + mysql 서비스시작 오류   member 컴퓨터존 2 / 0 10400 2007-08-20
write
button [1]