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).
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).
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.