2017-08-17 6 views
0

メインテーブルbirth_tに関連するテーブル名birthrateを作成したいので、birth_tにデータを挿入すると自動的にbirthrateテーブルも更新されます。他のテーブルを更新する際にトリガを作成する方法

Birth_tフィールド:

  1. Birth_id
  2. 名前
  3. 生家
  4. 生年月日
  5. セックス
  6. 身長

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

それが初期値0で存在しませんでした。そして、それはSumをインクリメントする場合は、このトリガーはBirthRateに行を挿入する必要があります。

関連する問題