MySQL - 插入HOUR('时间')时触发

时间:2014-09-08 15:32:31

标签: mysql

我有一个包含字段'timeduration'的表。目前,当我选择'timeduration'值时,我正在做HOUR('timeduration')以获得数小时的时间。我想在将数据插入表格时进行此计算,因此将小时值放入其自己的列中。

|  date    |  timeduration  |  hour
  12-12-14    01:00:00         1

我已经研究过触发器,但不知道如何解决这个问题,或者我在那里找到一种更容易的方法?

感谢您的帮助!

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触发器。