0

次の表を検討してください。

create table t (
        n1 int, n2 int, index (n1, n2),
        u1 int, u2 int, unique index (u1, u2));

SHOW COLUMNSのドキュメントによると、私が期待しKey = UNIていu1たのは

Key が UNI の場合、列は UNIQUE インデックスの最初の列です。(UNIQUE インデックスは複数の NULL 値を許可しますが、Null フィールドをチェックすることで、列が NULL を許可するかどうかを知ることができます。)

私は何が欠けていますか?

.

の出力desc t;(列Defaultと を除くExtra)

フィールド タイプ Null キー デフォルト エクストラ
n1 int(11) はい MUL
n2 int(11) はい
u1 int(11) はい MUL
u2 int(11) はい

.

show index from t;(無関係な列を除く)の出力

Table Non_unique Key_name Seq_in_index Column_name カーディナリティ
t 0 u1 1 u1 0
t 0 u1 2 u2 0
t 1 n1 1 n1 0
t 1 n1 2 n2 0
4

1 に答える 1

0

質問の更新を考慮して更新:

一意のインデックスに複数の列が含まれている場合、個々の列が UNI ではなく MUL と表示されることがあります。これは、2 つの列を合わせて常に一意にする必要があるにもかかわらず、個々の列が一意ではない可能性があるためです。

あなたのリンクから:

複数の列が複合 UNIQUE インデックスを形成している場合、UNIQUE インデックスは MUL として表示されることがあります。列の組み合わせは一意ですが、各列は特定の値を複数回保持できます。

于 2013-06-20T10:59:02.120 に答える