首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL:如果不存在创建索引

MySQL:如果不存在创建索引
EN

Database Administration用户
提问于 2012-09-19 13:40:32
回答 1查看 160.9K关注 0票数 92

如果MySQL中不存在索引,是否有创建索引的方法?

MySQL不支持明显的格式:

代码语言:javascript
运行
复制
CREATE INDEX IF NOT EXISTS index_name ON table(column)
ERROR 1064 (42000): You have an error in your SQL syntax;...

MySQL版本(mysql -V)为5.1.48,但我认为MySQL在其所有版本中都缺乏CREATE INDEX IF NOT EXIST能力。

只有在MySQL中不存在索引的情况下,创建索引的正确方法是什么?

EN

回答 1

Database Administration用户

发布于 2017-06-13 16:51:27

代码语言:javascript
运行
复制
SELECT COUNT(*)
FROM information_schema.statistics
WHERE TABLE_SCHEMA = DATABASE()
  AND TABLE_NAME = 'table_name' 
  AND INDEX_NAME = 'index_name'; 

我的查询将为您提供具有特定index_name的表上的索引数。基于这个计数,您可以决定是否发出CREATE INDEX命令。

在MySQL版本5.5上测试

MariaDB支持IF NOT EXISTS语法。您可以在那里使用CREATE INDEX IF NOT EXISTS

票数 7
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/24531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档