MySQL触发器不执行它应该

时间:2012-12-05 04:22:58

标签: mysql triggers

我在下面编写了触发器,但是当我插入表格时,它并没有像插入的那样大写插入的单词。 (也没有错误)。任何可能的解决方 (我有一个员工和一个employee2表,因为我读到你不能在它试图更新的表中有触发器。)

DELIMITER $$
DROP TRIGGER IF EXISTS mytrigger$$
CREATE TRIGGER mytrigger before INSERT ON employee FOR EACH ROW
BEGIN
 update employee2
 SET employee2.FName = CONCAT(UCASE(LEFT(employee2.FName, 1)), LCASE(SUBSTRING(employee2.FName, 2)));
END;
$$
DELIMITER ;

1 个答案:

答案 0 :(得分:3)

您可以在要更新的表上设置触发器,但是您无法运行UPDATE查询。而是在插入数据之前修改数据:

DELIMITER $$
DROP TRIGGER IF EXISTS mytrigger$$
CREATE TRIGGER mytrigger before INSERT ON employee FOR EACH ROW
BEGIN
  SET NEW.FName = CONCAT(UCASE(LEFT(NEW.FName, 1)), LCASE(SUBSTRING(NEW.FName, 2)));
END;
$$
DELIMITER ;

“NEW”关键字可让您访问要插入的数据。