我有两张桌子表1:率表2:书籍。 我想做一个触发器,如果任何货币的汇率变化,账簿表中的所有汇率必须相应地改变。以下是表格的结构:
-----------------------------
| Table1 : Rate |
-----------------------------
| id | name | rate | symbol |
-----------------------------
| 1 |Dollar|59.26 | $ |
| 2 |Euro |79.74 | € |
| 3 |Pound |98.61 | £ |
-----------------------------
--------------------------------------
| Table2 : Books |
--------------------------------------
| id | name | Price | Cur | PriceInRs|
--------------------------------------
| 1 | ABC | 15.00 | $ | 889.43 |
| 2 | PQR | 62.95 | € | 5019.63 |
| 3 | XYZ | 49.99 | £ | 4929.51 |
--------------------------------------
随着表1中任何货币的汇率更新:汇率。表2中的列PriceInRs的所有记录:书籍必须反映货币的变化。
我应该如何创建MySQL触发器?
请帮助
答案 0 :(得分:0)
这是你可以做的,但我强烈建议将费率表中的id存储到Books表而不是符号。
delimiter //
create trigger rate_update after update on Rate
for each row
begin
if new.rate <> old.rate then
update Books set PriceInRs = new.rate * Price where Cur = old.symbol ;
end if ;
end ; //
delimiter ;
如果您将id存储在books表中,那么更新查询where子句将使用rate表中的id完成,强烈建议这样做。