Mysql触发错误

发布于 2024-09-15 10:15:42 字数 584 浏览 1 评论 0原文

1.我正在使用 mysql 5.2.2 版本

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.我将数据插入帐户表

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.I m using mysql 5.2.2 version

2.I create table in my test database

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

3.I also Create trigger

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

4.I insert data into account table

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

5.After then when i use following command for show data

SELECT @sum AS 'Total amount inserted';

6.I can't find data what is problem for that or any mistake in this code?

Total amount inserted
 NULL

Can anyone help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

将军与妓 2024-09-22 10:15:42

您需要在插入值之前初始化@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 |
+-----------------------+

You need to initialize @sum prior to inserting values. For example:

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 |
+-----------------------+
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文