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. 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 $$
Desta forma funcionou normalmente.
CALL deleta_log ('10000'); Espero que tenha sido claro! :) Conto com ajuda de vocês. Abraços