Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL返回一个空的结果触发器_Mysql_Database_Triggers - Fatal编程技术网

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

MySQL返回一个空的结果触发器,mysql,database,triggers,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 montantTotal

我正在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;
一个主意


提前感谢

这和phpMyAdmin有什么关系?这是可能的。我认为MySQL为查询定义了一个大小限制。