MySQL 删除表中的所有索引
我有一个 MySQL 数据库,它已经运行了一段时间,其中有很多更改。最近我查看了它,发现在某些情况下我在同一字段上将索引加倍。有些索引丢失了,总体来说所有索引都混乱不堪。
我想删除表中的所有索引。后来我准备了一个脚本,它将运行 ALTER TABLE 并添加相关索引。
有没有办法删除表中的所有索引?
I have a MySQL database that runs for some time now with many changes on it. Lately I looked over it and I noticed that in some cases I have doubled the index on the same field. Some Indexes are missing, and in general there is a huge mess in all the indexes.
I wants to drop all indexes from a table. Later on I have a prepared script that will run ALTER TABLE
and add the relevant indexes.
Is there a way to drop all indexes from a table?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
简单的脚本:
Simple script:
如果您有 phpmyadmin 或任何类似的工具,您可以非常轻松地以图形方式完成此操作。
或者对于每个索引执行类似的操作
您可以使用以下命令获取索引
If you have phpmyadmin or any similar tool you can do that very easily graphically.
Or for every index do something like
You can get the indexes with
在 Ruby on Rails 中我这样做:
In Ruby on Rails I do this:
不,没有命令。
但是,您可以编写一个脚本来显示所有数据库,显示数据库中的所有表,显示这些表中的所有索引并将其全部删除。
但如果你不开始接受一些答案,我就不会为你写这个。
您还可以使用 phpmyadmin 或其他图形工具为每个表选择这个简洁的“全部选中”框。
no there isnt a command.
you can however write a script that shows all databases, shows all tables inside thowe databases, shows all indexes inside those tables and drops them all.
but i'n not gonna write that for you if you don't start accepting some answers.
you can also use phpmyadmin or another graphical tool to select this neat "check all" box for every table.