Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да преименувам индекс в MySQL

Отговорих на този въпрос през 2009 г. По това време в MySQL нямаше синтаксис за преименуване на индекс.

Оттогава MySQL 5.7 въведе ALTER TABLE RENAME INDEX синтаксис.

http://dev.mysql.com/doc/refman /5.7/bg/alter-table.html казва отчасти:

По-ранни версии на MySQL, напр. 5.6 и по-стари, не поддържат синтаксис в ALTER TABLE за преименуване на индекс (или ключ, който е синоним).

Единственото решение беше да ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...) .

Няма ALTER INDEX команда в MySQL. Можете само DROP INDEX и след това CREATE INDEX с новото име.

Относно вашата актуализация по-горе:може би документацията не е достатъчно точна. Независимо от това, няма SQL синтаксис за преименуване на индекс.

Индексът е структура от данни, която може да бъде възстановена от данните (всъщност се препоръчва периодично да се изграждат индекси с OPTIMIZE TABLE ). Отнема известно време, но това е обичайна операция. Структурите от данни на индексите са отделни от данните в таблицата, така че добавянето или пускането на индекс не трябва да се докосва до данните от таблицата, както се казва в документацията.

Относно .frm файл, MySQL не поддържа редактиране на .frm файл. Не бих го направил по някаква причина. Вие сте 100% гарантирани, че ще повредите вашата таблица и ще я направите неизползваема.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пивотни таблици в MySQL

  2. Изявление на MySQL Select и IF().

  3. персонализиран php форум - показва нови/непрочетени публикации

  4. Как да вмъкна данни в MySQL с автоматично увеличен първичен ключ?

  5. разбирането на mysql обяснява