1

您将如何创建一个触发器,该触发器首先使用要计算的插入行的值,以便转换插入的值?

假设我有这张桌子labor_rates

+---------------+-----------------+--------------+------------+
| labor_rate_id | rate_per_minute | unit_minutes | created_at |
+---------------+-----------------+--------------+------------+
| bigint        | numeric         | numeric      | timestamp  |
+---------------+-----------------+--------------+------------+

每次创建新记录时,我都需要将速率计算为rate/unit(这里的最小单位是一分钟)。

例如,插入新记录时:

INSERT INTO labor_rates(rate, unit)
VALUES (60, 480);

它将使用这些值创建一个新记录:

+---------------+-----------------+--------------+----------------------------+
| labor_rate_id | rate_per_minute | unit_minutes |         created_at         |
+---------------+-----------------+--------------+----------------------------+
|       1000000 |          1.1979 |           60 | 2017-03-16 01:59:47.208111 |
+---------------+-----------------+--------------+----------------------------+

有人可能会争辩说,这应该保留为计算字段,而不是存储计算值。但在这种情况下,最好存储计算值。

我对触发器相当陌生,因此非常感谢任何帮助。

4

0 回答 0