【问题标题】:How to create a trigger on updating other table如何在更新其他表时创建触发器
【发布时间】:2018-01-25 17:34:17
【问题描述】:

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

Birth_t 字段:

  1. Birth_id
  2. 姓名
  3. 出生地
  4. 生日
  5. 身高
  6. 重量
  7. 妈妈
  8. 父亲

Birthrate 字段:

  1. 身份证
  2. 年份(来自Birthdate 字段)
  3. 总和(将当年的出生率相加,因此我们知道某年出生的婴儿数量)

如何为这些创建触发器?

【问题讨论】:

    标签: 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2021-07-15
      • 1970-01-01
      • 2017-09-23
      • 2016-08-11
      • 1970-01-01
      相关资源
      最近更新 更多