【发布时间】:2017-08-22 16:28:58
【问题描述】:
我想触发以小时为单位计算输入持续时间。
我有以下代码,但它不正确,我不知道为什么。
create trigger Calculate_Duration
before insert or update on Tbl_Eventos
for each row
declare
begin
:new.duration := :new.endtime - :new.starttime
END;
我的桌子是这样的:
【问题讨论】:
-
如果您使用的是 MySQL 5.7.6+,您可能需要考虑生成列而不是触发器。 Generated Column Docs
-
我正在使用'5.7.17-0ubuntu0.16.04.1'
-
是的,它比 5.7.6 更新,您应该可以使用它们。
-
如果开始时间或结束时间发生变化?
-
那么duration值会相应改变。在内部,这将发生在时间发生变化时(对于 STORED GENERATED COLUMNs)或在 SELECT 上评估表达式时(对于 VIRTUAL GENERATED COLUMNs)。