2017-08-17 88 views
0

我想創建表名birthrate,涉及到主表birth_t,所以當我向birth_t插入數據時,表birthrate表也會自動更新。如何在更新其他表時創建觸發器

Birth_t領域:

  1. Birth_id
  2. 名稱
  3. 出生地
  4. 生日
  5. 性別
  6. 身高
  7. 重量
  8. 母親
  9. 父親

Birthrate領域:

  1. 編號
  2. 年(從Birthdate場)
  3. 總和(求和從當年人口出生率,因此我們知道有許多出生於嬰兒某年)

如何爲這些創建觸發器?

回答

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; 
| 

該觸發器應插入一行到BirthRate如果它不具有0的初始值存在,那麼它會遞增Sum

相關問題