2015-04-19 55 views
0

假設我有兩個表A和B.不能創建一個觸發條件是否在MySQL 5.5.27

表A有4列:ID,姓名,年齡,狀態
*狀態可能是唯一有效和無效 表B有:身份證,年齡,changedOn,idOfA

我想在表A這隻會 工作時表A的更新的行狀態爲「無效」寫一個更新觸發器。

我試圖寫一個觸發器是這樣的:

CREATE DEFINER = `root`@`localhost` TRIGGER `before_A_update` 
BEFORE UPDATE ON `A` FOR EACH ROW 
IF New.status = 'inactive' THEN 
UPDATE B 
SET age= (NEW.age + 10), 
changedOn = NOW() 
WHERE idOfA= NEW.id 
END IF; 
END; 

但它顯示了我的錯誤,而不是創建觸發器。

+0

不清楚。你在問什麼?我沒有看到任何問題。 – kebs

+0

請添加任何錯誤,並明確您的問題。如果可以的話,可能包括預期的結果和例子。這將幫助人們回答你的問題。 –

回答

0

兩件事情,你需要一個分隔符開頭,也缺少begin條款,它應該是爲

delimiter // 
CREATE DEFINER = `root`@`localhost` 
TRIGGER `before_A_update` before UPDATE ON `A` 
FOR EACH ROW 
BEGIN 
IF New.status = 'inactive' THEN 
    UPDATE B 
    SET age= (NEW.age + 10), 
    changedOn = NOW() 
    WHERE idOfA= NEW.id 
END IF; 
END;// 

delimiter ; 
+0

但它仍然無法正常工作。我正在使用MySql觸發器窗口來創建觸發器。 –

+0

如果您使用的是像phpmyadmin這樣的第三方應用程序,那麼您需要在那裏選擇分隔符,並從上面的代碼中刪除分隔符塊。所以不需要'定界符//',最後一行是'end;',不需要'定界符;' –

+0

嘿, 我也試過這種方式。但它也不起作用。我有點困惑,爲什麼這個正常的事情不起作用。 –

相關問題