Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để đổi tên một Chỉ mục trong MySQL

Tôi đã trả lời câu hỏi này vào năm 2009. Tại thời điểm đó, không có cú pháp nào trong MySQL để đổi tên một chỉ mục.

Kể từ đó, MySQL 5.7 đã giới thiệu ALTER TABLE RENAME INDEX cú pháp.

http://dev.mysql.com/doc/refman /5.7/en/alter-table.html nói một phần:

Các phiên bản trước của MySQL, ví dụ:5.6 trở về trước, không hỗ trợ cú pháp trong ALTER TABLE để đổi tên một chỉ mục (hoặc khóa, là một từ đồng nghĩa).

Giải pháp duy nhất là ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...) .

Không có ALTER INDEX lệnh trong MySQL. Bạn chỉ có thể DROP INDEX và sau đó CREATE INDEX với tên mới.

Về bản cập nhật của bạn ở trên:có lẽ tài liệu không đủ chính xác. Bất kể, không có cú pháp SQL nào để đổi tên một chỉ mục.

Chỉ mục là một cấu trúc dữ liệu có thể được tạo lại từ dữ liệu (trên thực tế, bạn nên xây dựng lại chỉ mục theo định kỳ với OPTIMIZE TABLE ). Phải mất một chút thời gian, nhưng đó là một hoạt động phổ biến. Cấu trúc dữ liệu chỉ mục tách biệt với dữ liệu bảng, vì vậy việc thêm hoặc bớt chỉ mục không cần phải chạm vào dữ liệu bảng, như tài liệu cho biết.

Về .frm , MySQL không hỗ trợ chỉnh sửa .frm tập tin. Tôi sẽ không làm điều đó vì bất kỳ lý do gì. Bạn được đảm bảo 100% về việc làm hỏng bảng của mình và khiến nó không thể sử dụng được.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel | Xác nhận duy nhất mệnh đề where

  2. Sự cố cơ sở dữ liệu UTF-8

  3. Cú pháp chính xác cho tìm kiếm và thay thế Regex sử dụng REGEXP_REPLACE trong MariaDB là gì?

  4. MySQL và JDBC với rewriteBishedStatements =true

  5. Cách xóa các hàng trùng lặp và cập nhật bảng