【问题标题】:How to create a trigger on updating other table如何在更新其他表时创建触发器
【发布时间】:2018-01-25 17:34:17
【问题描述】:
我想创建与主表birth_t相关的表名birthrate,所以当我向birth_t插入数据时,birthrate表也会自动更新。
Birth_t 字段:
- Birth_id
- 姓名
- 出生地
- 生日
- 性
- 身高
- 重量
- 妈妈
- 父亲
Birthrate 字段:
- 身份证
- 年份(来自
Birthdate 字段)
- 总和(将当年的出生率相加,因此我们知道某年出生的婴儿数量)
如何为这些创建触发器?
【问题讨论】:
标签:
mysql
phpmyadmin
database-trigger
【解决方案1】:
您需要从Birthdate 获取年份,并对照另一个表中的记录检查它以更新适用的记录。你可以这样做:
delimiter |
CREATE TRIGGER birthrata_update BEFORE INSERT ON test1
FOR EACH ROW
BEGIN
insert into Birthrate(Year, Sum)
select New.Year, 0
from BirthRate
where not exists (select 1 from BirthRate BR where BR.Year = New.Year limit 0, 1 );
update Birthrate
set Sum = Sum + 1
where Birthrate.Year = YEAR(NEW.Birthdate);
END;
|
如果BirthRate 不存在且初始值为0,则此触发器应插入一行。然后它将增加Sum。