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 回答