Excluir dados de uma tabela

1. Excluir dados de uma tabela

Julio Cesar dos Santos
juliowebomega

(usa CentOS)

Enviado em 13/11/2021 - 10:01h

Olá Pessoal, frequento o fórum a muito tempo, e agora decidi por me enganjar e fazer parte da comunidade. Minha dúvida é a seguinte: Eu tenho um tabela no banco de dados (vou chamar de W), e em uma coluna dessa tabela W possui informação "email@emai", eu quero remover todos os emails dessa coluna, desde que eles estejam contidos na coluna x da tabela Y. Podem me ajudar?


  


2. Re: Excluir dados de uma tabela

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 13/11/2021 - 13:58h


juliowebomega escreveu:

Olá Pessoal, frequento o fórum a muito tempo, e agora decidi por me enganjar e fazer parte da comunidade. Minha dúvida é a seguinte: Eu tenho um tabela no banco de dados (vou chamar de W), e em uma coluna dessa tabela W possui informação "email@emai", eu quero remover todos os emails dessa coluna, desde que eles estejam contidos na coluna x da tabela Y. Podem me ajudar?


Use o "delete"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




3. Re: Excluir dados de uma tabela

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 13/11/2021 - 16:28h

Se você quer apagar apenas o campo, pode fazer
update Y set x='' where x='email@emai'



4. Re: Excluir dados de uma tabela

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/11/2021 - 00:39h

https://www.w3schools.com/sql/sql_ref_drop_column.asp


______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



5. Re: Excluir dados de uma tabela

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 14/11/2021 - 13:19h

Utilize o DELETE, com a dessa forma:
DELETE FROM table_name WHERE condition; 


Exemplo 1:
Apagar os registros da tabela clientes, que possuam 12345 na coluna email:
DELETE FROM clientes WHERE email = '12345'; 


Exemplo 2
Remover os e-mails da tabela clientes que estão na tabela cancelar.
SELECT * FROM clientes;
1 - Ana - ana@globo.io
2 - Diego - email@email
3 - Maria - erro@email


SELECT * FROM clientes WHERE email IN ('email@email', 'erro@email');
2 - Diego - email@email
3 - Maria - erro@email


SELECT * FROM cancelar;
email@email
erro@email


UPDATE cientes SET email = '' WHERE email in (SELECT email_cancelar FROM cancelar); 


Atenciosamente,
Diego M. Rodrigues


6. Re: Excluir dados de uma tabela

Julio Cesar dos Santos
juliowebomega

(usa CentOS)

Enviado em 16/11/2021 - 04:27h


Mauriciodez escreveu:


juliowebomega escreveu:

Olá Pessoal, frequento o fórum a muito tempo, e agora decidi por me enganjar e fazer parte da comunidade. Minha dúvida é a seguinte: Eu tenho um tabela no banco de dados (vou chamar de W), e em uma coluna dessa tabela W possui informação "email@emai", eu quero remover todos os emails dessa coluna, desde que eles estejam contidos na coluna x da tabela Y. Podem me ajudar?


Use o "delete"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------



Olá, legal o video, vejo que devo usar o delete e o where, mas como deve ser a sintaxe haja vista a clausula de consulta é a coluna x de uma outra tabela do banco de dados?

Obrigado pela ajuda


7. Re: Excluir dados de uma tabela

Julio Cesar dos Santos
juliowebomega

(usa CentOS)

Enviado em 16/11/2021 - 04:33h


diegomrodrigues escreveu:

Utilize o DELETE, com a dessa forma:
DELETE FROM table_name WHERE condition; 


Exemplo 1:
Apagar os registros da tabela clientes, que possuam 12345 na coluna email:
DELETE FROM clientes WHERE email = '12345'; 


Exemplo 2
Remover os e-mails da tabela clientes que estão na tabela cancelar.
SELECT * FROM clientes;
1 - Ana - ana@globo.io
2 - Diego - email@email
3 - Maria - erro@email


SELECT * FROM clientes WHERE email IN ('email@email', 'erro@email');
2 - Diego - email@email
3 - Maria - erro@email


SELECT * FROM cancelar;
email@email
erro@email


UPDATE cientes SET email = '' WHERE email in (SELECT email_cancelar FROM cancelar); 


Atenciosamente,
Diego M. Rodrigues


Diego, obrigado pela ajuda, mas quando uso where, como de ve ser a sintaxe? porque a consulta vai ser feita em uma coluna de outra tabela do banco de dados.

Exemplo:

Eu tenho uma tabela com emails de pessoas enganjadas para receberem emails, agora algumas pessoas pediram remoção, essas remoções fica em uma outra tabela chamada removidos. Agora eu quero visitar a tabela removidos, e ver todos os emails que pediram remoção, e ir na tabela inscritos e remover o email dela de lá.

Desde já agradeço pela ajuda, to apanhando porque MySQL não é meu forte, mas to aprendendo, vou chegar lá.


8. Re: Excluir dados de uma tabela

Rafael Grether
rafael_grether

(usa FreeBSD)

Enviado em 17/11/2021 - 10:29h




Eu tenho uma tabela com emails de pessoas enganjadas para receberem emails, agora algumas pessoas pediram remoção, essas remoções fica em uma outra tabela chamada removidos. Agora eu quero visitar a tabela removidos, e ver todos os emails que pediram remoção, e ir na tabela inscritos e remover o email dela de lá.


delete from inscritos where email in (select email from removidos)




9. Re: Excluir dados de uma tabela

Julio Cesar dos Santos
juliowebomega

(usa CentOS)

Enviado em 19/11/2021 - 08:51h


rafael_grether escreveu:




Eu tenho uma tabela com emails de pessoas enganjadas para receberem emails, agora algumas pessoas pediram remoção, essas remoções fica em uma outra tabela chamada removidos. Agora eu quero visitar a tabela removidos, e ver todos os emails que pediram remoção, e ir na tabela inscritos e remover o email dela de lá.


delete from inscritos where email in (select email from removidos)



Olá, muito obrigado, funcionou.

Agora só tem 1 problema. rsrsrrs! Muito lento para a remoção, para remover 10mil linhas tá levando quase 8 horas. o Servidor é Dual X5670 com 32GB RAM, 70% da RAM liberada para o innodb, e usando SSD. Tem como fazer esse processo de forma mais rápida?





10. Re: Excluir dados de uma tabela

Rafael Grether
rafael_grether

(usa FreeBSD)

Enviado em 19/11/2021 - 14:31h



Olá, muito obrigado, funcionou.

Agora só tem 1 problema. rsrsrrs! Muito lento para a remoção, para remover 10mil linhas tá levando quase 8 horas. o Servidor é Dual X5670 com 32GB RAM, 70% da RAM liberada para o innodb, e usando SSD. Tem como fazer esse processo de forma mais rápida?



Então, para apenas 10 mil linhas, deveria levar alguns segundos. Costumo fazer atualizações de mais de 200 mil linhas, e leva em torno de 12 segundos.
Me parece ter relação com os índices da tabela. Verifica se a tabela de inscritos e removidos possui índice. E como email é único, recomendo deixar esse campo de email como índice.
A falta de índice e chave primária pode ser a causa da lentidão absurda.


11. Re: Excluir dados de uma tabela

Somit Vishwakarma
somit

(usa Outra)

Enviado em 20/11/2021 - 05:01h

Try this:
Example:
ALTER TABLE dbo.doc_exb DROP COLUMN column_b;


12. ##RESOLVIDO##

Julio Cesar dos Santos
juliowebomega

(usa CentOS)

Enviado em 20/11/2021 - 13:04h


rafael_grether escreveu:



Olá, muito obrigado, funcionou.

Agora só tem 1 problema. rsrsrrs! Muito lento para a remoção, para remover 10mil linhas tá levando quase 8 horas. o Servidor é Dual X5670 com 32GB RAM, 70% da RAM liberada para o innodb, e usando SSD. Tem como fazer esse processo de forma mais rápida?



Então, para apenas 10 mil linhas, deveria levar alguns segundos. Costumo fazer atualizações de mais de 200 mil linhas, e leva em torno de 12 segundos.
Me parece ter relação com os índices da tabela. Verifica se a tabela de inscritos e removidos possui índice. E como email é único, recomendo deixar esse campo de email como índice.
A falta de índice e chave primária pode ser a causa da lentidão absurda.


Olá muito obrigado, funcionou perfeitamente, deixei o campo email como indice e ficou assim a consulta:
Query OK, 1000 rows affected (0.39 sec)

Muito obrigado por toda ajuda



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts