Dae galera, desta vez vou estar postando uma solução, mas espero que não seja a única. Estive nos últimos dias pesquisando por truncate no Pear Dataobject, porém sem sucesso. Mas, como eu tinha urgência em finalizar um script php, descobri uma maneira de limpar todos os dados da tabela utilizando delete. Resolveu? sim! Mas se estivermos falando de performance, o Truncate do MySql tem algumas vantagens sobre o delete. Se quiser saber mais sobre estas vantagens acesse o post Utilizando TRUNCATE no MySql.
Bom, vamos à minha solução:
Imagine que queremos limpar os dados da tabela cliente:
$doCLIENTE = new DO_CLIENTE;
$doCLIENTE->whereAdd("COD_CLIENTE IS NOT NULL");
Até aqui instanciamos o DO e definimos o where. Neste caso o COD_CLIENTE é NOT NULL, assim todos as linhas da tabela obrigatoriamente contém um COD_CLIENTE. Agora vem o segredo do pear para utilizar o delete, com o método whereAdd:
$doCLIENTE->delete(DB_DATAOBJECT_WHEREADD_ONLY);
Isso mesmo, utiliza-se o parâmetro DB_DATAOBJECT_WHEREADD_ONLY. Desta forma o método vai considerar o whereAdd antes de apagar as linhas. Sem este parâmetro o whereAdd é ignorado!
Pronto! Aqui eu finalizei minha implementação. Se alguem conseguir uma solução que tenha a mesma performance do Truncate do MySql deixa a dica ai blz! Abraço! ;)
O Cleitinho não é fácil!
Há um mês
Nenhum comentário:
Postar um comentário