2014-06-05 105 views
-1

我有两个表格Table1:Rates Table2:Books。 我想做一个触发器,如果​​任何货币的汇率变化,书籍表中的所有汇率都必须相应改变。以下是表格的结构:如何在表A中更新MySQL触发器更新表B中的所有对应值B

----------------------------- 
| 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:图书中列价格InR的所有记录必须反映货币的变化。

我该如何创建一个MySQL触发器?

请帮助

+0

书中的问题你为什么要存储currecy符号而不是来自费率表的id? –

+0

,因为书表中的数据来自excel文件,其结构如书籍表。 – Darshan

+0

MySQL不是SQL SERVER – podiluska

回答

0

这是你如何能做到的,但我强烈建议从费率表的ID存储到书籍表而不是象征。

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的书籍表则where子句将使用从费率表的ID已经完成,这是强烈建议更新查询。

相关问题