A situação é a seguinte: Temos 2 bancos de dados com 2.5TB com acervo fotográfico armazenas em BLOB.
Após uma migração de um sistema antigo, alguém bagunçou as tabelas e alguns dados estão duplicados e minha estimativa é de pelo menos 800GB.
Para verificar isso, eu criei uma nova coluna (MD5SUM) nas tabelas e atualizei o hash das imagens para comparações
UPDATE TABELA SET MD5SUM=MD5(IMAGEM);
e depois eu verifico tabela por tabela
select MD5SUM, count(MD5SUM) as MD5
from `TABELA`
group by MD5SUM
having MD5 > 1
order by IMAGEM;
Como estou engatinhando no MySQL, tentei criar um trigger para automatizar a função do UPDATE acima para cada imagem nova armazenada, mas está retonando erro.
INSERT INTO `tmp`.`tmp0` (`IMAGEM`, `ID`, `MD5SUM`) VALUES (_binary 0xFFD8FFE000104A464946000000000/* large SQL query (4,0 MB), snipped at 2.000 characters */
/* SQL Error (1442): Can't update table 'tmp0' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. */
Alguém poderia fazer a gentileza de me ajudar a criar este trigger?
Obs: Como eu posso verificar multiplas tabelas em multiplos bancos simultaneamente para comparar os dados?
Pergunta
AndreNix
Olá pessoal, sou novo por aqui.
A situação é a seguinte: Temos 2 bancos de dados com 2.5TB com acervo fotográfico armazenas em BLOB.
Após uma migração de um sistema antigo, alguém bagunçou as tabelas e alguns dados estão duplicados e minha estimativa é de pelo menos 800GB.
Para verificar isso, eu criei uma nova coluna (MD5SUM) nas tabelas e atualizei o hash das imagens para comparações
UPDATE TABELA SET MD5SUM=MD5(IMAGEM);
e depois eu verifico tabela por tabela
select MD5SUM, count(MD5SUM) as MD5
from `TABELA`
group by MD5SUM
having MD5 > 1
order by IMAGEM;
Como estou engatinhando no MySQL, tentei criar um trigger para automatizar a função do UPDATE acima para cada imagem nova armazenada, mas está retonando erro.
INSERT INTO `tmp`.`tmp0` (`IMAGEM`, `ID`, `MD5SUM`) VALUES (_binary 0xFFD8FFE000104A464946000000000/* large SQL query (4,0 MB), snipped at 2.000 characters */
/* SQL Error (1442): Can't update table 'tmp0' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. */
Alguém poderia fazer a gentileza de me ajudar a criar este trigger?
Obs: Como eu posso verificar multiplas tabelas em multiplos bancos simultaneamente para comparar os dados?
desde já, agradeço.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados