【发布时间】:2022-01-23 12:52:44
【问题描述】:
我在 MySQL 中有两个表。第一个表“table1”记录特定项目的一个月中所有天的每日数据。像这样-
| id | Item | Date | num_of_items |
|---|---|---|---|
| 1 | Bag | 2021-12-01 | 2 |
| 2 | Bag | 2021-12-02 | 3 |
| 3 | Bag | 2021-12-03 | 4 |
| 4 | Bag | 2021-12-04 | 2 |
| 5 | Bag | 2021-12-05 | 7 |
| 6 | Pencil | 2021-12-01 | 2 |
| 7 | Pencil | 2021-12-02 | 4 |
| 8 | Pencil | 2021-12-03 | 1 |
| 9 | Pencil | 2021-12-04 | 5 |
| 10 | Pencil | 2021-12-05 | 2 |
如果该月有任何数量的项目需要,这将持续到第 31 天。
第二个表“table2”包含项目的费率,因为它在一个月内发生变化,并且不是恒定的。它看起来像这样 -
| id | Month | Year | Item | Entry Date | Final Date | Rate |
|---|---|---|---|---|---|---|
| 1 | December | 2021 | Bag | 2021-12-01 | 2021-12-02 | 10 |
| 2 | December | 2021 | Bag | 2021-12-03 | 2021-12-05 | 12 |
| 3 | December | 2021 | Pencil | 2021-12-01 | 2021-12-03 | 5 |
| 4 | December | 2021 | Pencil | 2021-12-04 | 2021-12-05 | 3 |
例如,要计算当月 Bag's 的总价值,第 1 天 + 第 2 天数量的前两天的比率为 10; 10x6 = 60 加上剩余 3 天的费率 12 - 12x(2+5+1) = 96,总共 156 个行李箱。
我想在使用触发器更新它的那一刻用当月每个项目的总值更新第三个表“table3”。第三张桌子看起来像这样 -
| id | Item | Month | Year | total |
|---|---|---|---|---|
| 1 | Bag | 12 | 2021 | 156 |
| 2 | Pencil | 12 | 2021 | 56 |
我知道如何手动获取我想要的值并使用它更新 table3,但不知道如何使用触发器自动执行此操作,该触发器在数据插入或更新到 table2 时更新 table3。
我该怎么做这样的事情?
【问题讨论】: