如何检查MySQL中的表字段是否存在索引?

Sea*_*ean 99 mysql indexing

我需要谷歌这几次,所以我分享我的Q/A.

Sea*_*ean 131

使用SHOW INDEX如下:

SHOW INDEX FROM [tablename]
Run Code Online (Sandbox Code Playgroud)

文档:https://dev.mysql.com/doc/refman/5.0/en/show-index.html

  • 显示来自`my_table`的索引WHERE Key_name ='index_to_check'; (32认同)
  • 最好使用Column_name而不是Key_name,这样您就不需要找到索引名称,如果它自动添加而没有名称. (6认同)

Sté*_*gne 35

尝试:

SELECT * FROM information_schema.statistics 
  WHERE table_schema = [DATABASE NAME] 
    AND table_name = [TABLE NAME] AND column_name = [COLUMN NAME]
Run Code Online (Sandbox Code Playgroud)

它将告诉您某个列上是否存在任何类型的索引,而无需知道为索引指定的名称.它也可以在存储过程中工作(而不是显示索引)


小智 9

SHOW KEYS FROM  tablename WHERE Key_name='unique key name'
Run Code Online (Sandbox Code Playgroud)

您可以找到表中是否存在唯一键


Som*_*mil 8

show index from table_name where Column_name='column_name';
Run Code Online (Sandbox Code Playgroud)


小智 6

使用以下语句:SHOW INDEX FROM your_table

然后检查字段的结果:row["Table"], row["Key_name"]

确保正确写入“Key_name”