2017-12-21 8 views
0

私は私のテーブルのユーザーがあります。mysqlの

+--------------------+--------------+------+-----+---------+-------+ 
| Field    | Type   | Null | Key | Default | Extra | 
+--------------------+--------------+------+-----+---------+-------+ 
| userid    | varchar(30) | YES |  | NULL |  | 
| lname    | varchar(40) | YES |  | NULL |  | 
| fname    | varchar(20) | YES |  | NULL |  | 
| system_id   | varchar(12) | YES |  | NULL |  | 
+--------------------+--------------+------+-----+---------+-------+ 

を、私は一意キーであることをsystem_iduseridを変更したいです。

私はALTER TABLE users MODIFY userid varchar(30) NOT NULL UNIQUE KEY;経由でそれらを変更した場合、私は得る:

+--------------------+--------------+------+-----+---------+-------+ 
| Field    | Type   | Null | Key | Default | Extra | 
+--------------------+--------------+------+-----+---------+-------+ 
| userid    | varchar(30) | NO | PRI | NULL |  | 
| lname    | varchar(40) | YES |  | NULL |  | 
| fname    | varchar(20) | YES |  | NULL |  | 
| system_id   | varchar(12) | YES |  | NULL |  | 
+--------------------+--------------+------+-----+---------+-------+ 

と私はそれを指定したことがないとき、私は変更する場合ALTER TABLE users MODIFY system_id varchar(30) NOT NULL UNIQUE KEY;

+--------------------+--------------+------+-----+---------+-------+ 
| Field    | Type   | Null | Key | Default | Extra | 
+--------------------+--------------+------+-----+---------+-------+ 
| userid    | varchar(30) | NO | PRI | NULL |  | 
| lname    | varchar(40) | YES |  | NULL |  | 
| fname    | varchar(20) | YES |  | NULL |  | 
| system_id   | varchar(12) | NO | UNI | NULL |  | 
+--------------------+--------------+------+-----+---------+-------+ 

SYSTEM_IDはなぜMySQLはPRIに私のUNIQUEキーを変更しています?

+0

私は、最初のユニークキーがデフォルトで自動的にプライマリキーになっていると思われます。 – Barmar

答えて

0

"NULL値を含むことができず、テーブルにPRIMARY KEYがない場合、UNIQUEインデックスはPRIとして表示されます。複数のカラムが複合UNIQUEインデックスを形成する場合、UNIQUEインデックスはMULとして表示されます。列は一意であり、各列は依然として与えられた値の複数の出現を保持することができます。

https://dev.mysql.com/doc/refman/5.7/en/show-columns.html

私の答えが見つかりました。

+0

明示的に 'PRIMARY KEY'を指定するのが最善です。 1つのテーブルに2つの 'UNIQUE'キーを持つことはまれです。 –