gpt4 book ai didi

php - MySQL命令删除表的所有非主索引

转载 作者:可可西里 更新时间:2023-11-01 08:07:12 24 4
gpt4 key购买 nike

是否有一个 MySQL 命令可以删除单个表中除第一个索引之外的所有额外索引,从而只保留主索引?

我可以使用以下 MySQL 命令删除第二个 Post_Date 索引,但删除所有其余索引时遇到问题。

mysql_query("ALTER TABLE $TableName DROP INDEX Post_Date");

额外的 Post_DatePost_Date_x 索引是在脚本的开头创建的,所以我想在脚本的末尾使用 MySQL 命令删除它们脚本结束。

请记住 Post_Date_x 中的 _x 会有所不同,可能从 1 到 10,或从 1 到 100。因此可能需要循环或 IF 语句。

MySQL 命令将成为 PHP 脚本的一部分

感谢您的宝贵时间。

Action  Keyname Type    Unique  Packed  Column  Cardinality Collation   Null    Comment
Edit Drop PRIMARY BTREE Yes No id 830 A
Edit Drop Post_Date BTREE Yes No Post_Date 830 A
Edit Drop Post_Date_2 BTREE Yes No Post_Date 830 A
Edit Drop Post_Date_3 BTREE Yes No Post_Date 830 A
Edit Drop Post_Date_4 BTREE Yes No Post_Date 830 A
Edit Drop Post_Date_5 BTREE Yes No Post_Date 830 A
Edit Drop Post_Date_6 BTREE Yes No Post_Date 830 A
Edit Drop Post_Date_7 BTREE Yes No Post_Date 830 A
Edit Drop Post_Date_8 BTREE Yes No Post_Date 830 A

最佳答案

这应该可以做到 -

$res = mysql_query("SHOW INDEX FROM `$TableName` WHERE `Key_name` LIKE 'Post_Date%'");

while ($row = mysql_fetch_object($res)) {
mysql_query("DROP INDEX `{$row->Key_name}` ON `{$row->Table}`") or die(mysql_error());
}

关于php - MySQL命令删除表的所有非主索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10183897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com