Es ist nicht explizit in der Dokumentation erwähnt (http://dev.mysql.com/doc/refman/6.0/en/drop-table.html). Ich frage, weil ich gerade eine seltsame Datenbankmigration in einem Rails-Projekt gesehen habe, bei der der Entwickler alle Indizes entfernt hat, bevor er die Tabelle fallen ließ, und das schien unnötig zu sein.Fallen beim Löschen einer Tabelle in MySQL auch die Indizes?
Antwort
Ja, tut es.
Wenn Sie jedoch Fremdschlüsseleinschränkungen wie RESTRICT haben, die die referenzielle Integrität mit anderen Tabellen sicherstellen, sollten Sie diese Schlüssel löschen, bevor Sie eine Tabelle löschen oder abschneiden.
Ja würde es den Index fallen lassen. Es gibt keinen Grund, den Index zu behalten, wenn die zugrunde liegende Tabelle nicht vorhanden ist. Ich vermute, dass die Abwärtsmigration das Gegenteil der Aufwärtsbewegung auf einer eins-zu-eins-Basis tut. Könnte ein Fall von CDO sein - wie OCD, aber die Buchstaben sind in der richtigen Reihenfolge.
Es ist nicht notwendig. Ihre DROP TABLE könnte jedoch verhindert werden, wenn die Tabelle Teil von Fremdschlüsselbeziehungen ist und das Löschen der Tabelle die Abhängigkeiten aufheben würde.