1
resposta

Deletar pelo index

Se eu por acidente adicionar duas linhas identicas em uma tabela, como faco para apagar apenas uma delas ? (A unica coisa que varia é o index).

1 resposta

Oi, Rafael! Tudo certo por aí?

Desde já, peço desculpas pela demora em retornar.

Para deletar uma única linha de uma tabela, você pode utilizar a cláusula WHERE (que permite a realização de filtros) juntamente com a DELETE. Como a única coisa que diferente os dados da nossa tabela é o index, iremos usá-lo justamente como critério do nosso filtro!

Inicialmente, para ter certeza de qual dado será excluído, analise mais uma vez os registros presentes em sua tabela com um SELECT:

SELECT * FROM [NOME DA TABELA]

Observe o dado duplicado e copie seu index.

Feito isso, basta utilizarmos a estrutura de DELETE com WHERE para efetuar a exclusão, desta forma:

DELETE FROM [NOME DA TABELA]
WHERE [INDEX] = valor;

Observação: onde está escrito [NOME DA TABELA] e [INDEX], é importante que você substitua, respectivamente, pelo noma da tabela onde o dado duplicado se encontra e o nome da coluna identificadora. Além disso, em valor é necessário substituir pelo valor do index desse mesmo dado.

Por meio do comando acima, estamos indicando a realização de uma exclusão por meio da cláusula DELETE e estamos filtrando o que será excluído através do WHERE — caso o WHERE não seja utilizado, todas as linhas da tabela serão deletadas.

Depois de executar o comando de exclusão, a linha duplicada não mais existirá em nossa tabela!

Espero ter ajudado, Rafa. Se surgirem novas dúvidas, fico à disposição.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!