您可以通過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);
-- 創建列存索引idx3
CREATE INDEX IF NOT EXISTS idx3 USING COLUMNAR
ON test(p1, p2, c1, c2, c3)
PARTITION BY ENUMERABLE (p1, p2, bucket(128, p1, p2));
刪除二級索引
執行以下語句,禁用二級索引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;
刪除列存索引
執行以下語句刪除idx3:
DROP INDEX idx3 ON test;
結果驗證
執行以下語句,查看索引刪除結果。
SHOW INDEX FROM test;
文檔內容是否對您有幫助?