반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Redis
- JSON
- 오라클
- SQL
- JQuery
- HTTP
- git
- 인텔리제이
- oracle
- 톰캣
- 자바스크립트
- Eclipse
- 자바
- mybatis
- Server
- 모바텀
- 상태코드
- 디비버
- db
- Linux
- 이클립스
- 자바문법
- 마이바티스
- DBeaver
- svn
- IntelliJ
- 보안
- Tomcat
- Javascript
- java
Archives
- Today
- Total
JongTachi의 개발 블로그
Multiple Primary Key (다중 PK) 본문
728x90
반응형
요번에 데이터 이관 작업을 하면서 매핑 정의서를 작성하는데 한 테이블에 2개의 PK가 있더라구요. 왜 2개인지 한번 조사해보았는데요. 한번 살펴봅시다!
일단 2개 이상의 pk를 설정 하는 경우를 확인해봅시다.
1. what is Multiple Primary Key?
개발을 하다보면 PK(Primary Key)를 한 개만 가지고 진행할 때도 있지만, 상황에 따라서는 여러 Key가 필요할 수도 있습니다. 이 상황에서 PK를 여러개 설정해야 하는데요. 간단히 예시를 들어보겠습니다.
player_team | player_id | player_name | player_goal_cnt |
PSG | 0001 | Messi | 20 |
PSG | 0120 | Neymar | 14 |
Man city | 0541 | Foden | 8 |
해당 테이블이 있다고 칩시다. 처음에 pk를 player_team으로 지정한다면, player_id가 달라도 1개의 행만 입력되게 됩니다. 추가로 입력하고 싶어도 에러가나는 것이죠. 이런 상황에서 사용하는 것이 바로 '다중 PK'입니다. player_team과 player_id 이 2개를 pk로 잡으면 두개를 합친 key는 유니크하게 중복되어 입력이 될 것입니다. (정말 간단한 예시입니다.....)
2. 다중 PK 설정하기
다중 PK를 설정하는 방법은 아주 간단합니다.
CREATE TABLE idv_stocks(
player_team VARCHAR(50),
player_id VARCHAR(10),
player_name VARCHAR(30),
player_goal_cnt int,
PRIMARY key (player_team, player_id)
);
3. pk가 하나 있는 상태에서 추가하고 싶은 경우
이럴 경우에는 PK인 컬럼에서 PK를 제거 하신 후 원하는 다중 컬럼을 PK로 설정해야합니다.
예를들어 player_team 컬럼에 PK가 설정되어있다면 먼저 PK를 제거해주셔야 합니다.
1) pk제거 (테이블의 이름은 SOCCER라고 가정하겠습니다.)
ALTER TABLE soccer DROP PRIMARY KEY;
2) 다시 pk 추가
ALTER TABLE soccer ADD PRIMARY KEY (player_team, player_id);
728x90
반응형
'DB' 카테고리의 다른 글
[DB] 테이블 컬럼 조회하기 (0) | 2023.07.20 |
---|---|
[DB] delete문 사용법 (완전 간단) (0) | 2023.07.20 |
[DB] SQL(관계형 데이터베이스)과 NosSQL(비관계형 데이터베이스)의 특징과 차이 (0) | 2023.06.11 |
[DB] ORM의 특징과 장단점 (0) | 2023.06.07 |
window에서 mariaDB, MySQL 서버 껐다 켜기 (0) | 2023.03.07 |