#1359 - Trigger already exists

06/11/2007

0

DELIMITER |
CREATE TRIGGER atualiza_estoque AFTER INSERT ON nitens_dbf
FOR EACH ROW BEGIN

DECLARE existe bigint(15);
DECLARE totest double(11,3);


SELECT count(ies.codite) INTO existe from iestoq_dbf ies where ies.codite=NEW.CODITE and ies.estoque=NEW.LOCAL_EST ;

SELECT sum(nit.qtdmov*ope.sinal_esto) INTO totest from nitens_dbf nit inner join operacao_dbf ope on nit.codope = ope.codope where nit.codite = NEW.CODITE and nit.local_est = NEW.LOCAL_EST ;

IF existe > 0 THEN
UPDATE iestoq_dbf SET qtdest=totest ;
END IF;

END;
|
DELIMITER ;


Estou tentando criar esta trigger, mas sempre recebo a mensagem [color=red:c85c673f3c]1359 - Trigger already exists [/color:c85c673f3c] , sendo q a trigger não existe no banco, pois quando tento dar um drop, aparece a mensagem de q a trigger não existe.


Anfm

Anfm

Responder

Posts

16/03/2020

César Cardoso

Alguém conseguiu resolver isso??
Responder

28/03/2020

Neto Ferreira

DELIMITER |
CREATE TRIGGER atualiza_estoque AFTER INSERT ON nitens_dbf
FOR EACH ROW BEGIN

DECLARE existe bigint(15);
DECLARE totest double(11,3);


SELECT count(ies.codite) INTO existe from iestoq_dbf ies where ies.codite=NEW.CODITE and ies.estoque=NEW.LOCAL_EST ;

SELECT sum(nit.qtdmov*ope.sinal_esto) INTO totest from nitens_dbf nit inner join operacao_dbf ope on nit.codope = ope.codope where nit.codite = NEW.CODITE and nit.local_est = NEW.LOCAL_EST ;

IF existe > 0 THEN
UPDATE iestoq_dbf SET qtdest=totest ;
END IF;

END;
|
DELIMITER ;


Estou tentando criar esta trigger, mas sempre recebo a mensagem [color=red:c85c673f3c]1359 - Trigger already exists [/color:c85c673f3c] , sendo q a trigger não existe no banco, pois quando tento dar um drop, aparece a mensagem de q a trigger não existe.




Creio que essa Procedure possa te ajudar

DROP PROCEDURE IF EXISTS sp_add_parametro;
DELIMITER //
CREATE PROCEDURE `sp_add_parametro`(IN `_cd_evento` INT, IN `_no_parametro` VARCHAR(100), IN `_vl_parametro` VARCHAR(500))
BEGIN
SET @a = CONCAT('SELECT COUNT(*) INTO @nRetorno FROM tbl_parametro WHERE cd_evento = ',_cd_evento,' AND no_parametro = ','''',_no_parametro,'''');
PREPARE stmt FROM @a;
EXECUTE stmt;
IF (@nRetorno) = 0 THEN
SET @b = CONCAT('INSERT INTO tbl_parametro (cd_evento,no_parametro,vl_parametro) VALUES (',_cd_evento,',','''',_no_parametro,'''',',','''',_vl_parametro,'''',')');
PREPARE stmt1 FROM @b;
EXECUTE stmt1;
ELSE
SET @c = CONCAT('UPDATE tbl_parametro SET vl_parametro = ','''',_vl_parametro,'''',' WHERE cd_evento = ',_cd_evento,' AND no_parametro = ','''',_no_parametro,'''');
PREPARE stmt2 FROM @c;
EXECUTE stmt2;
END IF;
END//
DELIMITER
;
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar