如何在更新其他表时创建触发器

时间:2017-08-17 10:34:08

标签: mysql phpmyadmin database-trigger

我想创建与主表birthrate相关的表名birth_t,因此当我将数据插入birth_t时,自动birthrate表也会更新。

Birth_t字段:

  1. Birth_id
  2. 名称
  3. 出生地
  4. 生日
  5. 身高
  6. 重量
  7. 母亲
  8. 父亲
  9. Birthrate字段:

    1. 编号
    2. 年(来自Birthdate字段)
    3. 总和(从一年中总结出生率,所以我们知道在某一年出生的婴儿数量)
    4. 如何为那些创建触发器?

1 个答案:

答案 0 :(得分:0)

您需要从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;
|

如果该行不存在且初始值为0,则该行应向BirthRate插入一行。然后它将增加Sum