Enviar por e-mail
Imprimir
Copiar tabela
O comando cria uma tabela com a estrutura e dados da tabela selecionada, ou seja, copia a tabela.
CREATE TABLE nova_tabela SELECT * FROM tabela;
Para copiar somente a estrutura da tabela use cláusula LIMIT com valor 0 (zero).
CREATE TABLE nova_tabela SELECT * FROM tabela LIMIT 0;
Como remover os registros duplicados
Como a tabela é criada a partir do resultado do SELECT, acrescente a cláusula GROUP BY - que agrupa os valores iguais - para selecionar apenas os dados distintos. Depois de criar a tabela você pode optar por: substituir a nova tabela pela original, deve-se excluir a tabela original e renomear a nova tabela; ou eliminar todos os dados da tabela original e preenche-la com os dados da nova tabela.
CREATE TABLE nova_tabela SELECT * FROM tabela_original GROUP BY campo;
Na primeira opção, a nova tabela assume a tabela original.
DROP TABLE tabela_original;
ALTER TABLE nova_tabela RENAME TO tabela_original;
Na segunda opção, a tabela nova faz o papel de uma tabela temporária.
TRUNCATE tabela_original;
INSERT INTO tabela_original SELECT * FROM tabela_nova;
DROP TABLE nova_tabela;
Para evitar que novos registros sejam duplicados, altere a tabela transformando o campo que não pode ser duplicado em campo único.
ALTER TABLE tabela ADD unique(campo);
Exemplo
| id | |
| 1 | pessoa@exemplo.com |
| 2 | empresa@exemplo.com |
| 3 | contato@exemplo.com |
| 4 | pessoa@exemplo.com |
A tabela boletim tem dados duplicados. O e-mail pessoa@exemplo.com foi inserido duas vezes.
CREATE TABLE boletim_novo SELECT * FROM boletim GROUP BY email ORDER BY email;
DROP TABLE boletim;
ALTER TABLE boletim_novo RENAME TO boletim;
ALTER TABLE boletim ADD UNIQUE(email);
Referências
Comentar
RSS
RSS
Como procurei em sites gringos, e como de costumo a solução ta no "Arroz com Feijao" de casa.
Ótima contribuição
Higor