考虑下表:
create table t (
n1 int, n2 int, index (n1, n2),
u1 int, u2 int, unique index (u1, u2));
根据SHOW COLUMNS documentation因为<{p}}我期待Key = UNI
{/ 1}}
如果Key为UNI,则该列是UNIQUE索引的第一列。 (UNIQUE索引允许多个NULL值,但您可以通过检查Null字段来判断该列是否允许NULL。)
我错过了什么?
u1
的输出(不含列desc t;
和Default
)
Field Type Null Key Default Extra n1 int(11) YES MUL n2 int(11) YES u1 int(11) YES MUL u2 int(11) YES
Extra
的输出(没有一些不相关的列)
Table Non_unique Key_name Seq_in_index Column_name Cardinality t 0 u1 1 u1 0 t 0 u1 2 u2 0 t 1 n1 1 n1 0 t 1 n1 2 n2 0
答案 0 :(得分:0)
已更新至问题更新帐户:
如果唯一索引中涉及多个列,则各列可能显示MUL而不是UNI,因为即使两列一起必须唯一,但各列可能不是。
从您的链接:
如果多个列形成复合UNIQUE索引,则UNIQUE索引可能显示为MUL;虽然列的组合是唯一的,但每列仍然可以保存给定值的多次出现。