mysql show tables like 模糊查询所有的表,然后循环修改查询出来的表里面的索引
时间: 2024-02-18 10:59:04 浏览: 72
您可以使用以下SQL语句来模糊查询所有的表:
```
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database_name'
AND TABLE_NAME LIKE '%your_table_name%'
```
这里,您需要将 `your_database_name` 替换为您的数据库名称,将 `your_table_name` 替换为您想要查询的表的名称。
接下来,您可以使用以下SQL语句来循环修改查询出来的表里面的索引:
```
SET @table_name = 'your_table_name';
SET @index_name = 'your_index_name';
SET @column_name = 'your_column_name';
SET @query = CONCAT('ALTER TABLE ', @table_name, ' DROP INDEX ', @index_name, ', ADD INDEX ', @index_name, '(', @column_name, ')');
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
```
这里,您需要将 `your_table_name` 替换为您想要修改的表的名称,将 `your_index_name` 替换为您想要修改的索引的名称,将 `your_column_name` 替换为您想要修改的索引所在的列的名称。
然后,您可以将以上两个SQL语句结合起来,使用循环语句来逐一查询并修改所有符合条件的表中的索引。
阅读全文