2015-12-09 73 views
0

變化值。如果名字或姓氏得到改變我希望數據庫自動改變全名太我有一個表像這樣的MySQL:觸發器 - 針對不同的列

id  firstname lastname fullname 
1  alex  car   alex car 
2  tony  table  tony table 

我這個觸發

CREATE TRIGGER mytrigger 
AFTER UPDATE 
    ON mytable FOR EACH ROW 

BEGIN 

    UPDATE `mydb`.`mytable` SET `fullname` = CONCAT(NEW.firstname, " ",NEW.lastname)  

END; 

嘗試過,但我得到這個錯誤:

#1442 - Can't update table 'mytable' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 

謝謝你。更新觸發前

回答

1

使用:

CREATE TRIGGER mytrigger BEFORE UPDATE 
    ON mytable FOR EACH ROW 
BEGIN 
    set new.fullname = CONCAT(NEW.firstname, ' ' , NEW.lastname) ; 
END; 

作爲一個說明:您的update使用會給你意想不到的結果。 update還沒有where子句,因此它將在表中的所有行中設置fullname列。

+0

我用BEFORE觸發器試過了,但沒有奏效。 – coder

+0

@coder。 。 。它是如何工作的? –