您可以通過DROP INDEX語句刪除已存在的索引。
引擎與版本
DROP INDEX文法僅適用於寬表引擎。無版本限制。
重要
使用DROP INDEX刪除搜尋索引、列存索引要求Lindorm SQL為2.6.1以上版本。如何查看Lindorm SQL的版本,請參見SQL版本說明。
文法
drop_index_statement ::= DROP INDEX [IF EXISTS] index_identifier
ON table_identifier;
重要
使用DROP INDEX語句刪除二級索引或搜尋索引前,必須通過
ALTER INDEX
語句禁用索引,並通過SHOW INDEX
查看索引狀態是否為INACTIVE。具體操作,請參見ALTER INDEX和SHOW INDEX。主表被刪除時,對應的索引會被一併刪除。
樣本
假設建立主表和索引的語句如下:
-- 建立主表
CREATE TABLE test (
p1 VARCHAR NOT NULL,
p2 INTEGER NOT NULL,
c1 BIGINT,
c2 DOUBLE,
c3 VARCHAR,
c4 TIMESTAMP,
PRIMARY KEY(p1, p2)
) WITH (CONSISTENCY = 'strong', MUTABILITY='MUTABLE_LATEST');
-- 建立二級索引idx1
CREATE INDEX idx1 ON test(c1 desc) include(c3,c4) WITH (COMPRESSION='ZSTD');
-- 建立搜尋索引idx2
CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(p1, p2, c1, c2, c3);
刪除二級索引
執行以下語句,禁用二級索引idx1。
ALTER INDEX IF EXISTS idx1 ON test DISABLED;
刪除二級索引。
DROP INDEX IF EXISTS idx1 ON test;
結果驗證
執行以下語句,查看索引刪除結果。
SHOW INDEX FROM test;
刪除搜尋索引
執行以下語句,禁用搜尋索引idx2。
ALTER INDEX IF EXISTS idx2 ON test DISABLED;
刪除搜尋索引idx2。
DROP INDEX IF EXISTS idx2 ON test;
結果驗證
執行以下語句,查看索引刪除結果。
SHOW INDEX FROM test;