用where子句在mysql中创建触发器

mwecs4sa  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(324)

我有两张table,城市和乡村。当一个城市的人口减少了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

但我不知道如何检查百分比变化而不出现一些错误。
我该怎么解决这个问题?谢谢!

ycggw6v2

ycggw6v21#

使用 IF 以及 new 以及 old 伪行。

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

相关问题