2011-07-28 3 views
0

나는 테이블은 다음과 유사하게 만든 경우 :받기 MySQL의 고유 키 콤보

CREATE TABLE MyTable(
    id1Part1 INT NOT NULL, 
    id1Part2 INT NOT NULL, 

    id2Part1 INT NOT NULL, 
    id2Part2 INT NOT NULL, 

    UNIQUE KEY (id1Part1, id1Part2), 
    UNIQUE KEY (id2Part1, id2Part2) 
); 

어떻게 지금 나에게 두 개의 "고유 키"튜플을 제공하기 위해 데이터베이스를 요청할 수 있습니다?
(SHOW INDEX이 작업을 수행하지 않는 것 같습니다.)

답변

1

잘 모르겠어요 당신에게 두 가지 기본 키를 제공 할 수없는이

select 
constraint_name, 
group_concat(column_name order by ordinal_position) as cols 
from information_schema.key_column_usage 
where table_schema = 'db_name' and table_name = 'table_name' 
group by constraint_name 
+0

흠 ... 나는 기회가 왔을 때 그것을 확인하려고 노력할 것이다. 고마워. 그것이 내가 필요한 것 같아 보입니다. – Mehrdad

1

MySQL은 같은 것을 찾고 있다면. 다음을 확인하십시오 :

mysql> CREATE TABLE MyTable(
    ->  id1Part1 INT NOT NULL, 
    ->  id1Part2 INT NOT NULL, 
    -> 
    ->  id2Part1 INT NOT NULL, 
    ->  id2Part2 INT NOT NULL, 
    -> 
    ->  UNIQUE KEY (id1Part1, id1Part2), 
    ->  UNIQUE KEY (id2Part1, id2Part2) 
    ->); 
Query OK, 0 rows affected (0.17 sec) 

mysql> desc mytable; 
+----------+---------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+----------+---------+------+-----+---------+-------+ 
| id1Part1 | int(11) | NO | PRI | NULL |  | 
| id1Part2 | int(11) | NO | PRI | NULL |  | 
| id2Part1 | int(11) | NO | MUL | NULL |  | 
| id2Part2 | int(11) | NO |  | NULL |  | 
+----------+---------+------+-----+---------+-------+ 

기본 키가 하나만 있음을 보여줍니다.

+0

나는 혼란 스럽다. 우리는 * unique * keys 또는 * primary * keys에 대해 이야기하고 있는가? – Mehrdad