如何从MYSQL数据库备份索引?

问题描述 投票:0回答:1

从 MYSQL 进行备份非常简单,但它不像转储数据库,这里是查询,您可以在其中导出结果并导入到您的第二个数据库中

它应该为我提供数据库中的所有索引

SELECT CONCAT (concat("ALTER TABLE ",trim(TABLE_NAME)),
group_concat(
IF(INDEX_NAME="PRIMARY", 
concat(" ADD PRIMARY KEY (`", column_name,"`)"),
concat(" ADD INDEX `",INDEX_NAME,"` (`",column_name,"` ASC) ")
)),";") AS result
FROM information_schema.STATISTICS 
WHERE TABLE_SCHEMA='DB_Name'  
GROUP BY TABLE_NAME;
sql mysql
1个回答
0
投票

要获取索引的输出为

SQL commands
并可以传输到另一个实例并执行(类似于导入 mysqldump),您可以从 CLI 执行以下操作:

mysql -ABNe 'SELECT CONCAT (concat("ALTER TABLE ",trim(TABLE_NAME)), group_concat( IF(INDEX_NAME="PRIMARY",  concat(" ADD PRIMARY KEY (`", column_name,"`)"), concat(" ADD INDEX `",INDEX_NAME,"` (`",column_name,"` ASC) ") )),";") AS result FROM information_schema.STATISTICS  WHERE TABLE_SCHEMA="DB_NAME" GROUP BY TABLE_NAME' > mysql_indexes_dbname.sql
© www.soinside.com 2019 - 2024. All rights reserved.