2013-07-05 12 views
5

Ich habe eine MySQL-Datenbank, wo die Namen der Indizes zwischen den Tabellen geteilt werden. Das ist in MySQL kein Problem, da Indexnamen nur innerhalb einer Tabelle und nicht innerhalb einer Datenbank eindeutig sein müssen. Aber ich muss diese Datenbank in ein System exportieren, das den Indexnamen global eindeutig benötigt.Wie kann ich alle Indizes in MySQL umbenennen

Gibt es einen Befehl oder ein Skript, das ich ausführen kann, um den Indizes eindeutige Namen zuzuordnen? Es ist mir egal, ob sie zufällig generiert werden.

+0

Es gibt keine, aber Sie können benutzerdefinierte Skript für das schreiben. Ein Hinweis: Es gibt keine Möglichkeit, den Index in mysql umzubenennen (vor 5.7: http://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html), nur drop + create – zerkms

Antwort

0

MySQL unterstützt keine Syntax in ALTER TABLE, um einen Index (oder Schlüssel, der ein Synonym ist) umzubenennen.

Sie können ALTER TABLE DROP KEY und ALTER TABLE ADD KEY.

Es gibt keinen ALTER INDEX Befehl in MySQL. Sie können nur DROP INDEX und dann CREATE INDEX mit dem neuen Namen.

1

Es gibt keinen RENAME oder ALTER Indexbefehl für MySQL. Sie müssen entweder DROP den Index oder CREATE einen neuen.

2

Ab der neuesten Version von MySQL gibt es keine Möglichkeit, Indizes umzubenennen. Ihre einzige Option wäre DROP der Index dann CREATE ein neues oder nur CREATE ein neues.

0

Ich denke, es lohnt sich hervorheben, was oben in einem Kommentar erwähnt @zerkms - Sie können einen Index umbenennen (seit MySQL 5.7):

alter table mytable RENAME INDEX old_index_name TO new_index_name 
Verwandte Themen