使用 Where 子句在 MySql 中创建触发器
Posted
技术标签:
【中文标题】使用 Where 子句在 MySql 中创建触发器【英文标题】:Create Trigger in MySql with Where Clause 【发布时间】:2018-10-01 21:48:48 【问题描述】:我有 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
但我不知道如何检查百分比变化而不会遇到一些错误。
我该如何解决这个问题?谢谢!
【问题讨论】:
create trigger
不是 SQL 查询。这是一条 SQL 语句。只有select
语句是查询。
【参考方案1】:
使用IF
和new
和old
伪行。
...
IF new.population / old.population < 0.95 THEN
UPDATE city
SET population = population * 0.95;
END IF;
...
【讨论】:
以上是关于使用 Where 子句在 MySql 中创建触发器的主要内容,如果未能解决你的问题,请参考以下文章
使用 VBA 函数调用在 QueryEditor 中创建查询以指定 WHERE IN 子句