2010-08-20 100 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 | 
+-----------------------+