Chỉ mục DROP của MySQL nếu tồn tại


Lệnh DROP INDEX dùng để xóa chỉ mục trong bảng

Truy cập MS

DROP INDEX index_name TRÊN tên_bảng;

Máy chủ SQL

DROP INDEX tên_bảng. tên_chỉ mục;

DB2/Oracle

mysql

ALTER TABLE table_name
DROP INDEX index_name;

DROP INDEX loại bỏ chỉ mục có tên index_name khỏi bảng tbl_name. Câu lệnh này được ánh xạ tới câu lệnh ALTER TABLE để loại bỏ chỉ mục

Nếu một kết nối khác đang sử dụng bảng, khóa siêu dữ liệu sẽ hoạt động và câu lệnh này sẽ đợi cho đến khi khóa được giải phóng. Điều này cũng đúng với các bảng phi giao dịch

Xem ALTER TABLE

Một phím tắt khác, CREATE INDEX, cho phép tạo chỉ mục

Để xóa khóa chính, `PRIMARY` phải được chỉ định là index_name. Lưu ý rằng các dấu ngoặc kép là cần thiết, bởi vì PRIMARY là một từ khóa

đặc quyền

Thực thi câu lệnh DROP INDEX yêu cầu đặc quyền DROP INDEX0 cho bảng hoặc cơ sở dữ liệu

DDL trực tuyến

DDL trực tuyến được sử dụng theo mặc định với InnoDB, khi thao tác thả chỉ mục hỗ trợ nó

Xem Tổng quan về DDL trực tuyến của InnoDB để biết thêm thông tin về DDL trực tuyến với InnoDB

DROP INDEX1

Nếu mệnh đề DROP INDEX2 được sử dụng, thì MariaDB sẽ trả về cảnh báo thay vì lỗi nếu chỉ mục không tồn tại

DROP INDEX3

Báo cáo tiến độ

MariaDB cung cấp báo cáo tiến độ cho câu lệnh DROP INDEX cho khách hàng hỗ trợ giao thức báo cáo tiến độ mới. Ví dụ: nếu bạn đang sử dụng ứng dụng khách DROP INDEX5, thì báo cáo tiến độ có thể trông như thế này

Xem thêm

Bình luận

Nội dung được sao chép trên trang web này là tài sản của chủ sở hữu tương ứng và nội dung này không được MariaDB xem xét trước. Quan điểm, thông tin và ý kiến ​​được thể hiện bởi nội dung này không nhất thiết đại diện cho quan điểm của MariaDB hoặc bất kỳ bên nào khác

MySQL cho phép câu lệnh DROP INDEX xóa chỉ mục hiện có khỏi bảng. Để xóa một chỉ mục khỏi bảng, chúng ta có thể sử dụng truy vấn sau

Nếu chúng tôi muốn xóa một chỉ mục, nó yêu cầu hai điều

  • Trước tiên, chúng tôi phải chỉ định tên của chỉ mục mà chúng tôi muốn xóa
  • Thứ hai, tên của bảng mà chỉ mục của bạn thuộc về

Cú pháp Drop Index chứa hai tùy chọn tùy chọn, đó là Thuật toán và Khóa để đọc và ghi các bảng trong quá trình sửa đổi chỉ mục. Hãy để chúng tôi giải thích cả hai chi tiết

Tùy chọn thuật toán

Algorithm_option cho phép chúng tôi chỉ định thuật toán cụ thể để xóa chỉ mục trong bảng. Cú pháp của thuật toán_option như sau

Cú pháp Drop Index hỗ trợ chủ yếu hai thuật toán là INPLACE và COPY

SAO CHÉP. Thuật toán này cho phép chúng ta sao chép từng hàng một bảng vào một bảng mới khác rồi thực hiện câu lệnh DROP Index trên bảng mới này. Trên bảng này, chúng ta không thể thực hiện câu lệnh INSERT và UPDATE để thao tác dữ liệu

ĐẶT CHỖ. Thuật toán này cho phép chúng ta xây dựng lại một bảng thay vì sao chép bảng gốc. Ta có thể thực hiện mọi thao tác thao tác dữ liệu trên bảng này. Trên bảng này, MySQL phát hành khóa siêu dữ liệu độc quyền trong quá trình xóa chỉ mục

Ghi chú. Nếu bạn không xác định mệnh đề thuật toán, MySQL sử dụng thuật toán INPLACE. Nếu INPLACE không được hỗ trợ, nó sẽ sử dụng thuật toán COPY. Thuật toán MẶC ĐỊNH hoạt động giống như không sử dụng mệnh đề thuật toán nào với câu lệnh Drop index

Tùy chọn khóa

Điều khoản này cho phép chúng tôi kiểm soát mức độ đọc và ghi đồng thời trong quá trình xóa chỉ mục. Cú pháp của lock_option như sau

Theo cú pháp, chúng ta có thể thấy lock_option chứa 4 chế độ là DEFAULT, NONE, SHARED và EXCLUSIVE. Bây giờ, chúng ta sẽ thảo luận chi tiết về tất cả các chế độ

ĐÃ CHIA SẺ. Chế độ này chỉ hỗ trợ đọc đồng thời, không ghi đồng thời. Khi các lần đọc đồng thời không được hỗ trợ, nó sẽ báo lỗi

MẶC ĐỊNH. Chế độ này có thể có mức đồng thời tối đa cho một thuật toán cụ thể. Nó sẽ cho phép đọc và ghi đồng thời nếu được hỗ trợ nếu không sẽ thực thi chế độ độc quyền

KHÔNG AI. Bạn có đồng thời đọc và ghi nếu chế độ này được hỗ trợ. Nếu không, nó đưa ra một lỗi

LOẠI TRỪ. Chế độ này thực thi quyền truy cập độc quyền

Thí dụ

Đầu tiên, thực hiện lệnh sau để hiển thị các chỉ mục có sẵn trong bảng

Nó sẽ cho đầu ra sau

Chỉ mục DROP của MySQL nếu tồn tại

Ở đầu ra, chúng ta có thể thấy rằng có sẵn ba chỉ mục. Bây giờ, hãy thực hiện câu lệnh sau để xóa chỉ mục lớp khỏi bảng student

Một lần nữa, thực hiện câu lệnh SHOW INDEXES để xác minh chỉ mục có bị xóa hay không. Sau khi thực hiện câu lệnh này, chúng ta sẽ nhận được đầu ra sau, trong đó chỉ có hai chỉ mục

Chỉ mục DROP của MySQL nếu tồn tại

Ví dụ sử dụng Thuật toán và Khóa

Câu lệnh sau đây loại bỏ chỉ số tuổi từ bảng sinh viên bằng thuật toán và tùy chọn khóa

MySQL Drop PRIMARY Key Index

Trong một số trường hợp, bảng chứa chỉ mục CHÍNH được tạo bất cứ khi nào bạn tạo bảng có khóa chính hoặc khóa duy nhất. Trong trường hợp đó, chúng ta cần thực hiện lệnh sau vì PRIMARY là từ dành riêng

Chúng ta có thể xóa chỉ mục trong MySQL không?

Lệnh DROP INDEX dùng để xóa chỉ mục trong bảng .

Chỉ số có thể bị loại bỏ?

Cách bạn loại bỏ một chỉ mục tùy thuộc vào việc bạn đã tạo chỉ mục đó một cách rõ ràng bằng câu lệnh CREATE INDEX hay hoàn toàn bằng cách xác định một ràng buộc khóa trên bảng. Nếu bạn đã tạo chỉ mục một cách rõ ràng bằng câu lệnh CREATE INDEX, thì bạn có thể xóa chỉ mục bằng câu lệnh DROP INDEX .

Bạn có thể bỏ chỉ mục SQL không?

Bấm chuột phải vào bảng có chứa chỉ mục bạn muốn xóa và bấm Thiết kế. Trên menu Trình thiết kế bảng, bấm vào Chỉ mục/Khóa. Trong hộp thoại Chỉ mục/Khóa, chọn chỉ mục bạn muốn xóa. Nhấp vào Xóa

Điều gì xảy ra với các chỉ mục khi bảng bị hủy?

Việc hủy bảng sẽ xóa định nghĩa bảng khỏi từ điển dữ liệu. Tất cả các hàng của bảng không còn truy cập được nữa. Tất cả các chỉ mục và trình kích hoạt được liên kết với một bảng đều bị loại bỏ . Tất cả các khung nhìn và đơn vị chương trình PL/SQL phụ thuộc vào bảng bị loại bỏ vẫn còn, nhưng trở nên không hợp lệ (không sử dụng được).