1

我在下面编写了触发器,但是当我插入表格时,它并没有像预期的那样大写插入的单词。(也没有错误)。任何可能的解决方案?(我有一个employee 和一个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 ;
4

1 回答 1

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”关键字使您可以访问将要插入的数据。

于 2012-12-05T04:30:57.593 回答