sql >> Databáze >  >> RDS >> Mysql

Jak přejmenuji index v MySQL

Na tuto otázku jsem odpověděl v roce 2009. V té době v MySQL neexistovala žádná syntaxe pro přejmenování indexu.

Od té doby MySQL 5.7 zavedlo ALTER TABLE RENAME INDEX syntax.

http://dev.mysql.com/doc/refman /5.7/cs/alter-table.html říká částečně:

Starší verze MySQL, např. 5.6 a starší, nepodporují žádnou syntaxi v ALTER TABLE přejmenovat index (nebo klíč, což je synonymum).

Jediným řešením bylo ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...) .

Neexistuje žádný ALTER INDEX příkaz v MySQL. Můžete pouze DROP INDEX a poté CREATE INDEX s novým názvem.

Pokud jde o vaši aktualizaci výše:dokumentace možná není dostatečně přesná. Bez ohledu na to neexistuje žádná syntaxe SQL pro přejmenování indexu.

Index je datová struktura, kterou lze z dat znovu sestavit (ve skutečnosti se doporučuje indexy pravidelně obnovovat pomocí OPTIMIZE TABLE ). Chvíli to trvá, ale je to běžná operace. Datové struktury indexů jsou oddělené od dat tabulky, takže přidání nebo odstranění indexu by se nemělo dotknout dat tabulky, jak uvádí dokumentace.

Pokud jde o .frm MySQL nepodporuje úpravy .frm soubor. Neudělal bych to z žádného důvodu. Máte 100% záruku, že vaši tabulku poškodíte a učiníte nepoužitelnou.



  1. Jak analyzovat čas z databáze

  2. SQL dotaz na datové intervaly

  3. Protokol transakcí serveru SQL, část 1:Základy protokolování

  4. Jak exportovat prázdné tabulky v oracle