使用Where子句在MySql中创建触发器

时间:2018-10-01 21:48:48

标签: mysql sql triggers

我有2张桌子,城市和国家。当城市人口减少5%以上时,如何使同一大陆上每个国家的人口减少5%时如何触发?

城市:

|Name        | Country Code |Population
|------------|--------------|----------
| Dubai      | ARE          | 669181
| Abu Dhabi  | ARE          | 123456
| Sharja     | ARE          | 23456 

国家:

|Code  | Continent |Population| Name
|------|-----------|----------|----------
| ARE  | Asia      | 2441000  | United Arab Emirates
| ARM  | Asia      | 3520000  | Armenia 

这是我到目前为止的查询:

delimiter $$
    create trigger decreasePop 
    before update on city
    for each row
    begin 
        update city set population = population * 0.95;
    end $$
delimiter

但是我不知道如何检查百分比变化而不会遇到一些错误。

该如何解决?谢谢!

1 个答案:

答案 0 :(得分:0)

使用IFnewold伪行。

...
IF new.population / old.population < 0.95 THEN
    UPDATE city
           SET population = population * 0.95;
END IF;
...