gpt4 book ai didi

MySQL 将两列的差值计算成一个 Total 列

转载 作者:行者123 更新时间:2023-11-30 23:10:25 28 4
gpt4 key购买 nike

Name  |InitialScore  | CurrentScore   | Total
-----------------------------------------------
Bart | 145 | 95 | -50
Homer | 230 | 260 | 30
Lisa | 111 | 179 | 68

我有一个包含上述值的表,我试图做的是让总计列从名为 mods 的表中找出初始分数和当前分数之间的差异。

我已经尝试了多种变体:

    ALTER TABLE mods
ADD Total AS tphs + won PERSISTED

但我不断收到“#1064 - 您的 SQL 语法有错误;”我目前的 MySQL 是 5.1.70。有没有一种方法可以实现标记为 Total 的持久化列,以便当我更改 CurrentScore 列时它会自动更新总数?

最佳答案

您想使用触发器。触发器是与表关联的命名数据库对象,当表发生特定事件时激活。此事件可以是插入、更新或删除。

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

在这种情况下,您希望在插入之前设置一个触发器。

CREATE TRIGGER insert_total BEFORE INSERT ON mods
FOR EACH ROW SET Total = NEW.InitialScore + NEW.CurrentScore;

这会将InitialScoreTotalScore 相加并放入Total 记录中。仅供引用:此触发器适用于 INSERTLOAD DATA

关于MySQL 将两列的差值计算成一个 Total 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20014019/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com