【问题标题】:trigger error with null output使用空输出触发错误
【发布时间】:2012-12-01 15:21:31
【问题描述】:

这是我的触发器:

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。

【问题讨论】:

    标签: php mysql sql syntax triggers


    【解决方案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
    $$
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 2019-04-20
      • 2012-04-27
      • 2023-04-02
      • 2021-01-26
      相关资源
      最近更新 更多