我有一个包含字段'timeduration'的表。目前,当我选择'timeduration'值时,我正在做HOUR('timeduration')以获得数小时的时间。我想在将数据插入表格时进行此计算,因此将小时值放入其自己的列中。
| date | timeduration | hour
12-12-14 01:00:00 1
我已经研究过触发器,但不知道如何解决这个问题,或者我在那里找到一种更容易的方法?
感谢您的帮助!
答案 0 :(得分:1)
是的,BEFORE INSERT和BEFORE UPDATE触发器会执行此操作。这是让MySQL根据分配给hour
列的值自动填充timeduration
列中的值的唯一方法。
以下是BEFORE INSERT触发器的示例。
DELIMITER $$
CREATE TRIGGER mytable_bi
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
SET NEW.hour = HOUR(NEW.timeduration);
END$$
DELIMITER ;
如果您希望在UPDATE语句修改hour
值时保持timeduration
同步,则您可能还需要相应的BEFORE UPDATE触发器。