Resumo : neste tutorial, você aprenderá como usar a DROP INDEX
instrução MySQL para remover índices existentes de uma tabela.
Introdução à instrução MySQL DROP INDEX
Para excluir um índice existente de uma tabela, você usa a DROP INDEX
instrução a seguir:
DROP INDEX index_name
ON table_name
[algorithm_option | lock_option];
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- Primeiro, especifique o nome do índice que deseja remover após as
DROP INDEX
palavras-chave. - Segundo, especifique o nome da tabela à qual o índice pertence.
Algoritmo
Permite algorithm_option
especificar um algoritmo específico usado para a remoção do índice.
O seguinte mostra a sintaxe da algorithm_option
cláusula:
ALGORITHM [=] {DEFAULT|INPLACE|COPY}
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para a remoção do índice, os seguintes algoritmos são suportados:
COPY
: O MySQL copia os dados da tabela original para uma nova tabela linha por linha. Após concluir a cópia, o DROP INDEX é executado na tabela recém-criada. Observe que durante o processo de cópia, você não tem permissão para executar nenhuma instrução de manipulação de dados simultânea, comoINSERT
eUPDATE
.INPLACE
: o algoritmo INPLACE envolve a reconstrução da tabela diretamente em seu local existente sem criar uma nova cópia da tabela. Durante as fases de preparação e execução do processo de remoção do índice, o MySQL coloca um bloqueio exclusivo de metadados na tabela. Isso permite que instruções simultâneas de manipulação de dados sejam executadas juntamente com o processo de remoção do índice.
Observe que a ALGORITHM
cláusula é opcional. Se você pular, o MySQL usará INPLACE
. Caso INPLACE
não seja suportado, o MySQL usa COPY
.
Usar DEFAULT
tem o mesmo efeito que omitir a ALGORITHM
cláusula.
Trancar
Controla lock_option
o nível de leituras e gravações simultâneas na tabela enquanto o índice está sendo removido.
O seguinte mostra a sintaxe do lock_option
:
LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Os seguintes modos de bloqueio são suportados:
-
DEFAULT
: Isso permite que você tenha o nível máximo de simultaneidade para um determinado algoritmo. Primeiro, permite leituras e gravações simultâneas, se houver suporte. Caso contrário, permita leituras simultâneas, se houver suporte. Caso contrário, imponha acesso exclusivo. -
NONE
: seNONE
houver suporte, você poderá ter leituras e gravações simultâneas. Caso contrário, o MySQL emitirá um erro. -
SHARED
: seSHARED
houver suporte, você poderá ter leituras simultâneas, mas não gravações. O MySQL emite um erro se as leituras simultâneas não forem suportadas. -
EXCLUSIVE
: Isso impõe acesso exclusivo.
Exemplos de instruções MySQL DROP INDEX
Vamos criar uma nova tabela para demonstração:
CREATE TABLE leads(
lead_id INT AUTO_INCREMENT,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
email VARCHAR(255) NOT NULL,
information_source VARCHAR(255),
INDEX name(first_name,last_name),
UNIQUE email(email),
PRIMARY KEY(lead_id)
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A instrução a seguir remove o name
índice da leads
tabela:
DROP INDEX name ON leads;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A instrução a seguir elimina o email
índice da leads
tabela com um algoritmo e bloqueio específicos:
DROP INDEX email ON leads
ALGORITHM = INPLACE
LOCK = DEFAULT;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Índice MySQL DROP PRIMARY KEY
Para eliminar a chave primária cujo nome de índice é PRIMARY
, você usa a seguinte instrução:
DROP INDEX `PRIMARY` ON table_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que PRIMARY
é uma palavra invertida no MySQL. No entanto, o nome do índice é PRIMARY. Portanto, você precisa colocar PRIMARY entre aspas para especificar o índice primário.
A instrução a seguir cria uma nova tabela nomeada t
com uma chave primária:
CREATE TABLE t(
pk INT PRIMARY KEY,
c VARCHAR(10)
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para eliminar o índice de chave primária, você usa a seguinte instrução:
DROP INDEX `PRIMARY` ON t;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- Use a
DROP INDEX
instrução para remover um índice existente. - Use o
DROP INDEX `PRIMARY`
para remover o índice primário.