当某些值为 NULL 时 SQL 触发器对行求和

问题描述 投票:0回答:1

我想对 3 行求和,但是当 row1 为 NULL 时,我想跳过它来对所有其他行求和,这样我收到错误:

CREATE TRIGGER `sum_total_test_before_insert` BEFORE INSERT ON `test`  
FOR EACH ROW  
BEGIN  
 IF (NEW.row1 IS NULL) THEN  
 SET NEW.Total = (NEW.row2 + NEW.row3);  
 ELSE  
 SET NEW.Total = (NEW.row1 + NEW.row2 + NEW.row3);  
END IF;  

#1064 - 第 5 行 '' 附近的语法有问题

感谢您的帮助。

我希望有正确的语法

sql triggers null
1个回答
0
投票

你没有关闭第一个BEGIN。应该是

CREATE TRIGGER `sum_total_test_before_insert` BEFORE INSERT ON `test`  
FOR EACH ROW  
BEGIN  
  IF (NEW.row1 IS NULL) THEN  
    SET NEW.Total = (NEW.row2 + NEW.row3);  
  ELSE  
    SET NEW.Total = (NEW.row1 + NEW.row2 + NEW.row3);  
  END IF;
END;
© www.soinside.com 2019 - 2024. All rights reserved.