1

ここに私のトリガーがあります:

create trigger wyplacamy before insert on `skladki_wyplaty`
for each row
BEGIN
  SELECT p.wysokosc_skladki, p.ilosc_miesiecy INTO @wysokosc_skladki, @ilosc_miesiecy
    FROM skladki_aktualne p
    WHERE p.pesel = NEW.pesel AND p.id_ubezpieczenia = NEW.id_ubezpieczenia;

  SET NEW.wyoskosc_wyplaty = @wysokosc_skladki / @ilosc_miesiecy *75;
END
$$

これは機能しますが、「wyoskosc_wyplaty」の iutpput は NULL であり、wysokosc_skladki = 8000、ilosc_miesiecy = 8 でもあります。

4

1 に答える 1

1

変数は、使用する前に宣言する必要があります。

delimiter $$
create trigger wyplacamy before insert on `skladki_wyplaty`
for each row
BEGIN

  DECLARE var_wysokosc_skladki INT;
  DECLARE var_ilosc_miesiecy INT; 

  SELECT p.wysokosc_skladki, p.ilosc_miesiecy INTO var_wysokosc_skladki, var_ilosc_miesiecy
  FROM skladki_aktualne p
  WHERE p.pesel = NEW.pesel 
  AND p.id_ubezpieczenia = NEW.id_ubezpieczenia;

  SET NEW.wyoskosc_wyplaty = var_wysokosc_skladki / var_ilosc_miesiecy * 75;

END
$$
于 2012-12-13T17:15:04.827 に答える