MySQL返回一个空的结果触发器
我正在MySQL中创建一个触发器,但我有一个问题,MySQL返回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
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为查询定义了一个大小限制。