用条件创建指数?

时间:2011-12-04 17:15:50

标签: mysql sql database

我正在使用MySQL v5.1。

我想通过执行以下SQL语句在表上创建索引:

CREATE INDEX index_name
ON table_name (column_name)

但是,我想首先检查该列上的索引是否已经创建,如果没有,则创建它(否则不创建)。这是什么SQL语法?

2 个答案:

答案 0 :(得分:1)

Mysql没有IF NOT EXISTS的{​​{1}}。您可以通过查询CREATE INDEX表来解决问题。看看here,有一个存储过程的例子可以满足您的需求(在页面上搜索“如果不存在则创建索引”)

答案 1 :(得分:0)

你想要SHOW INDEX

获取表格中的所有索引:

SHOW INDEX FROM table_name

MySQL允许您添加WHERE子句以限制结果。

在检查索引是否存在时(如果它不存在,创建索引)锁定表,以便另一个进程在您检查之后但之前没有创建索引你自己创造了它。