如何创建此MySQL触发器?

时间:2011-04-28 13:29:43

标签: mysql triggers

我有一个名为customer的表,其中包含一个名为name的列和一个名为first_name_start的列。我希望first_name_start等于SUBSTRING(name, 1, 4)。我如何创建一个确保发生这种情况的触发器?

2 个答案:

答案 0 :(得分:3)

DELIMITER $$

CREATE TRIGGER trigger_name BEFORE INSERT ON your_table
FOR EACH ROW 
BEGIN
  SET NEW.first_name_start = SUBSTRING(NEW.name, 1, 4);  
END$$

CREATE TRIGGER trigger_name BEFORE UPDATE ON your_table
FOR EACH ROW 
BEGIN  
  SET NEW.first_name_start = SUBSTRING(NEW.name, 1, 4);
END$$

DELIMITER ;

不幸的是,我没有时间对此进行测试,这可能是完全错误的。

答案 1 :(得分:0)

为什么不创建一个添加first_name_start的视图,如果你真的需要它作为列?然后你不会存储冗余数据,但你可以像使用它一样使用它。