MySQL返回一个空结果 - 触发器

时间:2015-05-28 13:33:48

标签: mysql database triggers

我在MySQL中创建了一个触发器,但是我有一个问题,MySQL返回“MySQL返回一个空结果集(即零行)”;

CREATE TRIGGER insert_transaction BEFORE 
INSERT ON transaction 
FOR EACH ROW
    BEGIN
        DECLARE montantTotalTransaction FLOAT;
        DECLARE montantObjet FLOAT;
        DECLARE montantTotalNewTransaction FLOAT;
        DECLARE idPotObjet INTEGER;
        DECLARE idPotAmi INTEGER;

        SET @montantTotalTransaction := (SELECT IFNULL(ROUND(SUM(montant),2),0) FROM objet o, transaction t WHERE o.id = NEW.id_objet and t.id_objet = o.id);
        SET @prixObjet := (SELECT prix FROM objet WHERE id = NEW.id_objet);
        SET @montantTotalNewTransaction := @montantTotalTransaction + NEW.montant;
        SET @idPotObjet := (SELECT id_pot FROM objet WHERE id = NEW.id_objet);
        SET @idPotAmi := (SELECT id_pot FROM ami WHERE nom = NEW.id_ami);

        IF NEW.montant < 0 THEN
          SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Le montant de la transaction ne peut être négatif';
        END IF;

        IF @montantTotalNewTransaction >  @prixObjet THEN
            SIGNAL SQLSTATE '45001' SET MESSAGE_TEXT = 'La somme de toutes les transactions sur cet objet est plus grande que le prix de l\'objet';
        END IF;

        IF @idPotObjet <> @idPotAmi THEN
            SIGNAL SQLSTATE '45004' SET MESSAGE_TEXT = 'L\'ami et l\'objet n\'appartiennent pas au même pot';
        END IF;
    END;

一个想法?

提前感谢!!

0 个答案:

没有答案