sql >> Database teknologi >  >> RDS >> Mysql

Hvordan omdøber jeg et indeks i MySQL

Jeg besvarede dette spørgsmål i 2009. På det tidspunkt var der ingen syntaks i MySQL til at omdøbe et indeks.

Siden da har MySQL 5.7 introduceret et ALTER TABLE RENAME INDEX syntaks.

http://dev.mysql.com/doc/refman /5.7/da/alter-table.html siger delvist:

Tidligere versioner af MySQL, f.eks. 5.6 og tidligere, understøtter ingen syntaks i ALTER TABLE at omdøbe et indeks (eller nøgle, som er et synonym).

Den eneste løsning var at ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...) .

Der er ingen ALTER INDEX kommando i MySQL. Du kan kun DROP INDEX og derefter CREATE INDEX med det nye navn.

Med hensyn til din opdatering ovenfor:måske er dokumentationen ikke præcis nok. Uanset hvad er der ingen SQL-syntaks til at omdøbe et indeks.

Et indeks er en datastruktur, der kan genopbygges fra dataene (det anbefales faktisk at genopbygge indekser med jævne mellemrum med OPTIMIZE TABLE ). Det tager noget tid, men det er en almindelig operation. Indeksdatastrukturer er adskilte fra tabeldata, så tilføjelse eller sletning af et indeks skulle ikke være nødvendigt at røre ved tabeldataene, som det står i dokumentationen.

Med hensyn til .frm fil, understøtter MySQL ikke redigering af .frm fil. Jeg ville ikke gøre det af nogen grund. Du er 100 % garanteret at ødelægge dit bord og gøre det ubrugeligt.



  1. Henvisning til fremmednøgler i samme kolonne

  2. SQL-OPDATERING:Lær, hvordan du opdaterer værdier i en tabel

  3. Problemer med RODBC sqlSave

  4. Behov for at få produktdata ud af mysql-databasen