2014-10-20 6 views
0

열의 조합을 테이블의 기본 키로 만들 수 있습니까?테이블의 기본 키로 열 조합

ID_1 | ID_2 | ID_3 | ID_4 | VALUE ----- ------ ------ ------ ------ 1 1 1 1 A 1 2 1 1 B 2 1 1 1 A

내가 ID_1, ID_2, ID_3 및 ID_4의 값을 원하는 기본 키 결합 : 예를 들어
나는 있습니다. 감사합니다.

+1

예. 기본 키를 정의 할 때 모든 열을 포함하면됩니다 (예 : 'CREATE TABLE T (ID_1 INT .... PRIMARY KEY (ID_1, ID_2, ID_3, ID_4)); ' – GarethD

+2

fyi, 복합 기본 키라고합니다 – Prescott

+0

복합 키의 차이점은 무엇입니까? 또는 복합 기본 키는 SQL 용이고 복합 SQL은 MySQL 용입니까? – clintgh

답변

1

- 첫째 솔루션 :

CREATE TABLE IF NOT EXISTS tableName ( 
     id_1 INT NOT NULL, 
     id_2 INT NOT NULL, 
     id_3 INT NOT NULL, 
     id_4 INT NOT NULL, 
     value VARCHAR(10) NULL, 
     CONSTRAINT pk PRIMARY KEY (id_1, id_2, id_3, id_4) 
    ); 

- 두번째 해결책 : 사용 협회 테이블.

0

가능하지만 피해야합니다. 기본 키는 하나의 열이어야합니다.

CREATE TABLE `test`.`new_table` (
    `id_1` INT NOT NULL, 
    `id_2` INT NOT NULL, 
    `id_3` INT NOT NULL, 
    `id_4` INT NOT NULL, 
    `value` VARCHAR(45) NULL, 
    PRIMARY KEY (`id_1`, `id_2`, `id_3`, `id_4`)); 
+2

왜 피해야합니까? 나는 올바른 테이블 생성 구문을 위해 upvoting을하거나, 그 앞에있는 말도 안되는 것을 downvoting하는 것 사이에서 찢겨 난다. – GarethD

+0

이 테이블을 사용하려고하면 코드가 복잡해집니다. 예를 들어 자동 증분 PK. – aeliv002

+0

다시 회피, 정말 유스 케이스와 데이터에 따라 다릅니다. – Prescott

관련 문제