Создать триггер в MySql с предложением Where - PullRequest
0 голосов
/ 02 октября 2018

У меня 2 таблицы, город и страна.Как создать триггер, если численность населения города уменьшится более чем на 5%, чтобы уменьшить численность населения каждой страны на одном континенте на 5%?

city:

|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 голосов
/ 02 октября 2018

Используйте IF и псевдоряд new и old.

...
IF new.population / old.population < 0.95 THEN
    UPDATE city
           SET population = population * 0.95;
END IF;
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...