mysql - MySQL中的特定时间触发器
问题描述
我有关于银行账户交易信息的表格,其中有 ID 帐号、余额、日期和任何交易的用户。每次我存款或取款时,特定账户的账户余额都会发生变化(显然)。我需要创建一个触发器来汇总所有帐户余额,例如一天结束时所有帐户的总余额,并在每个特定日期和每个总余额填写另一个表。我想我应该使用那个触发器,但我不知道如何按天过滤它。
CREATE TABLE movement
(account VARCHAR(10) NOT NULL ,
date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
description VARCHAR(30) NOT NULL,
type ENUM('D','W') NOT NULL,
value DECIMAL(7,2) NOT NULL
)ENGINE=INNODB;
CREATE TABLE balance
(account VARCHAR(10) PRIMARY KEY,
balance DECIMAL(7,2) NOT NULL
)ENGINE=INNODB;
CREATE TABLE daily_balance
(date DATE PRIMARY KEY,
balance DECIMAL (7,2) NOT NULL
)
DELIMITER //
CREATE TRIGGER TOTAL_AI after insert on movement for each row
begin
insert into daily_balance values (now(), (select sum(balance) from balance));
end //
DELIMITER ;
解决方案
推荐阅读
- intellij-idea - 使用带有 IntelliJ 的 Project Lombok 进行模糊方法调用
- javascript - Highcarts.js 系列标签对齐行为
- spring - Spring JPA :: 找不到能够从类型转换的转换器
- python - 替换字符串列中的数据框值,从另一列获取要替换的值
- php - file_get_contents(): http:// wrapper 在服务器配置中被allow_url_fopen=0 禁用
- python - python 3 (Qt) [Errno 13] 权限被拒绝。如何获取文件夹路径?
- monitoring - grafana 无法连接到给定的 url
- magento - 编辑 admin/sales_order/index 页面
- video - 如何在 macOS 上使用带有 gpu 支持的 ffmpeg
- google-maps - 使用 Flutter Google Maps 插件自定义标记