【问题标题】:What is the MySQL KEY value (in desc table) for a multicolumn primary key?多列主键的 MySQL KEY 值(在 desc 表中)是什么?
【发布时间】:2013-06-17 04:52:36
【问题描述】:

考虑下表:

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

根据SHOW COLUMNS documentation,我期待Key = UNI for u1 因为

如果 Key 是 UNI,则该列是 UNIQUE 索引的第一列。 (一个 UNIQUE 索引允许多个 NULL 值,但您可以通过检查 Null 字段来判断该列是否允许 NULL。)

我错过了什么?

.

desc t; 的输出(不包括 DefaultExtra 列)

字段类型 Null Key 默认 Extra n1 int(11) 是 MUL n2 int(11) 是 u1 int(11) 是 MUL u2 int(11) 是

.

show index from t; 的输出(没有一些不相关的列)

表 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

【问题讨论】:

标签: mysql


【解决方案1】:

已更新以说明问题更新:

如果唯一索引中涉及多个列,则各个列可能会显示 MUL 而不是 UNI,因为即使两列一起必须始终是唯一的,但各个列可能不是。

来自您的链接:

如果多个列形成一个复合 UNIQUE 索引,则 UNIQUE 索引可能显示为 MUL;尽管列的组合是唯一的,但每列仍然可以包含给定值的多次出现。

【讨论】:

  • 哎呀,我的意思是UNI,我已经引用了相关部分。很抱歉再次改变主意。
  • @Matt Davies - 请您编辑您的帖子以将摘录显示为块引用,而不是代码?在行前加上> 而不是四个空格。我无法更改这一点,因为编辑被认为“太琐碎”。谢谢!
  • 已根据您的新问题进行了更新 :) 注意@nurdglaw,谢谢!
猜你喜欢
  • 2012-03-22
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 2011-02-08
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多