mysql - 更新时在同一张表上执行触发器
问题描述
我想在 phpMyAdmin-MySQL 中执行一个触发器,该触发器在UPDATE
同一个表上包含一条语句,如下所示:
create trigger AFTER INSERT ON Table
FOR EACH ROW BEGIN
UPDATE Table
SET Total = NEW.Total + 1.03
WHERE order_number = NEW.order_number;
END
也许,这是不可能的。如果没有,有什么方法可以模拟吗?
解决方案
MySQL 有一个约束,您不能在触发器中更新同一个表。但是,如果 order_number 是唯一的INSERT
,我认为您可以通过修改触发器Total
中的值来实现相同的结果:BEFORE INSERT
CREATE TRIGGER update_total BEFORE INSERT ON Table
FOR EACH ROW
BEGIN
SET NEW.Total = NEW.Total + 1.03;
END
推荐阅读
- python - Python 3.6 - 枚举文件
- twitter - Twitter OAuth2 令牌撤销返回 401 错误,提示“不允许客户端应用程序使此令牌无效”。
- metpy - 打开无线电探空仪文件
- qt - PySide2“TLS 初始化失败”或将 OpenSSL dll 放在哪里?
- go - 带有串行通信的 io.Reader 中缺少字节
- python - 在 python3 中使用单引号和双引号时出错
- css - react-native 风格的 iframe 以适应 webview
- android - 如何在随机时间但以最小时间间隔播放声音
- encryption - 在 Python 中使用 SHA256withRSA 进行数字签名验证失败
- python - Python Shell 返回 ImportError: No module named 'ldap' 异常