Tenho um banco mysql o qual eu quero montar uma PROCEDURE que recebe uma data e exclui todos os dados que foram anteriores a data informada. Segue o conteúdo da PROCEDURE que eu criei.
DELIMITER $$
DROP PROCEDURE IF EXISTS `deleta_log` $$
CREATE DEFINER=`root`@`%` PROCEDURE `deleta_log`(IN DT INT)
BEGIN
DELETE *FROM `logs` WHERE `datetime` < 'DT';
END $$
Quando eu chamo esta procedure (inserindo a data) ela me mostra todos os valores.
CALL deleta_log ('2011-04-19 00:00:00');
Se eu executar a consulta direta, ela me mostra só o que eu quero:
CALL deleta_log ('2011-04-19 00:00:00');
Outro teste que eu fiz foi substituir a coluna, troquei para a coluna SEQ, que é usada como auto-incremento.
DELIMITER $$
DROP PROCEDURE IF EXISTS `deleta_log` $$
CREATE DEFINER=`root`@`%` PROCEDURE `deleta_log`(IN DT INT)
BEGIN
SELECT *FROM `logs` WHERE `seq` < 'DT';
END $$
Pergunta
Gean de Souza
Bom dia pessoal,
Sou novo no pedaço e gostaria da ajuda de vocês.
Tenho um banco mysql o qual eu quero montar uma PROCEDURE que recebe uma data e exclui todos os dados que foram anteriores a data informada. Segue o conteúdo da PROCEDURE que eu criei.
Quando eu chamo esta procedure (inserindo a data) ela me mostra todos os valores. Se eu executar a consulta direta, ela me mostra só o que eu quero: Outro teste que eu fiz foi substituir a coluna, troquei para a coluna SEQ, que é usada como auto-incremento. Desta forma funcionou normalmente.Espero que tenha sido claro! :)
Conto com ajuda de vocês.
Abraços
Editado por Denis CourcyLink para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados