2010-08-20 101 views
1

1.I米用mysql 5.2.2版本mysql的觸發錯誤

2.我在我的測試數據庫中創建表

CREATE TABLE account (acct_num INT, amount DECIMAL(10,2)); 

3.我也創建觸發器

CREATE TRIGGER ins_sum BEFORE INSERT ON account 
FOR EACH ROW SET @sum = @sum + NEW.amount; 

4 .I將數據插入帳戶表

INSERT INTO account VALUES(137,14.98),(141,1937.50),(97,-100.00); 

5 。經過那麼當我用下面的數據顯示

SELECT @sum AS 'Total amount inserted'; 

6.我無法找到數據究竟是什麼這個問題或在此代碼的任何錯誤命令?

Total amount inserted 
NULL 

任何人都可以幫忙嗎?

回答

1

您需要在插入值之前初始化@sum。例如:

SET @sum := 0; 
INSERT INTO account VALUES(137,14.98),(141,1937.50),(97,-100.00); 
SELECT @sum AS 'Total amount inserted'; 
+-----------------------+ 
| Total amount inserted | 
+-----------------------+ 
|    1852.48 | 
+-----------------------+