我正在使用MySQL v5.1。
我想通过执行以下SQL语句在表上创建索引:
CREATE INDEX index_name
ON table_name (column_name)
但是,我想首先检查该列上的索引是否已经创建,如果没有,则创建它(否则不创建)。这是什么SQL语法?
答案 0 :(得分:1)
Mysql没有IF NOT EXISTS
的{{1}}。您可以通过查询CREATE INDEX
表来解决问题。看看here,有一个存储过程的例子可以满足您的需求(在页面上搜索“如果不存在则创建索引”)
答案 1 :(得分:0)
你想要SHOW INDEX。
获取表格中的所有索引:
SHOW INDEX FROM table_name
MySQL允许您添加WHERE
子句以限制结果。
在检查索引是否存在时(如果它不存在,创建索引)锁定表,以便另一个进程在您检查之后但之前没有创建索引你自己创造了它。