キー名が PRIMARY、Type が BTREE、Unique が YES、Packed が NO、Column が ID、Cardinality が 728、Collation が A である 1 つの Index を持つデータベース テーブルがあります。
ページの読み込み時に実行され、MySQL データベース テーブルにエントリを追加し、データベース テーブルから重複を削除するスクリプトがあります。
以下は、重複を削除するスクリプト セクションです。
// Removes Duplicates from the MySQL Database Table
// Removes Duplicates from the MySQL Database Table based on 'Entry_Date' field
mysql_query("Alter IGNORE table $TableName add unique key (Entry_Date)");
// Deletes the added index created by the Removes Duplicates function
mysql_query("ALTER TABLE $TableName DROP INDEX Entry_Date");
上記の [重複を削除] コマンドを使用すると、追加のインデックスがテーブルに追加されます。次の行コマンドは、この追加されたインデックスを削除することを想定しています。
問題は、Removes Duplicates コマンドで作成された追加インデックスが、次の Delete added index コマンドで削除されないことがあるため、テーブルにさらにインデックスが追加されることです。これらの追加のインデックスは、追加されたインデックスを手動で削除するまで、スクリプトがデータベースに追加のデータを追加するのを防ぎます。
私の質問: この投稿の冒頭で述べた元のインデックスを除くすべてのインデックスを削除するスクリプトに追加できるコマンドまたは短い関数はありますか?
次の投稿を読みましたが、これが正しいスクリプトであるかどうかはわかりません: 単一のクエリで主キーを除くすべてのインデックスを削除する方法