end*_*rdy 1 mysql trigger count
假设我有一个表,trx_request其中包含以下数据
id | confirmed(TIME) | finished(TIME)
-------------------------------------
1 | 12:05:00 | NULL
2 | 13:11:00 | NULL
Run Code Online (Sandbox Code Playgroud)
和另一个trx_updates使用以下数据调用的表
request(FK) | role(INT) | added(TIME)
------------------------------------------
1 | 1 | 14:02:00
Run Code Online (Sandbox Code Playgroud)
我想制作一个触发器,在将记录插入后trx_updates,计算该request字段中有多少记录具有相同的值(例如有多少个“1”)。然后,检查计数是否达到 4(“1”出现 4 次)。当它发生时,它会将 更新trx_requests.finished为 NOW()。
如何在触发器中创建一个计数语句?或者触发器是要走的路?
这个触发器可以完成以下工作:
create trigger trx_updates_atrig
after insert on trx_updates for each row begin
DECLARE updatecount INT;
set updatecount = ( select count(*) from trx_updates where request = new.request );
if updatecount=4
then
update trx_request set finished=NOW() where id = new.request;
end if;
end//
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29163 次 |
| 最近记录: |