如何创建一个触发器,使用要插入的行的值首先计算,以便插入的值被转换?
假设我有这张表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 |
+---------------+-----------------+--------------+----------------------------+
有人可能会争辩说,这应该保留为计算字段而不是存储计算值。但在这种情况下,最好是存储计算值。
我对触发器相当新,所以任何帮助都会非常感激。