2013-02-20 52 views
-3

我想防止更新數據庫行中的兩列mysql觸發器,因爲前我的表是mymy和他們兩列是column1column2和行ID是11。如何在MySQL觸發器中運行它?防止更新數據庫行中的多個列

enter image description here

我想它是:

CREATE TRIGGER 'no_update' BEFORE INSERT ON 'mymy' 
FOR EACH ROW BEFORE UPDATE , then check if NEW.column1 != OLD.column1 OR NEW.column2 != OLD.column2 

,我有錯誤:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BEFORE UPDATE , then check if NEW.id_relation != OLD.id_relation OR NEW.active !' at line 1

如何解決這個問題?

+0

什麼是正在運行,更新兩列的查詢檢查查詢的語法? – 2013-02-20 09:10:12

+0

試試看看你有多遠。在手冊中有很多例子。 – fancyPants 2013-02-20 09:14:58

+0

您可以創建一個觸發器,BEFORE UPDATE,然後檢查NEW.column1!= OLD.column1 OR NEW.column2!= OLD.column2,引發應用程序錯誤,或通知用戶 – ogres 2013-02-20 09:18:02

回答

-1

如果你真的不想更新column1和column2的值,那麼你可以使用觸發器將新值設置爲舊值,從而永遠不更新它們 - 我相信這是你的尋找。

CREATE TRIGGER test_trigger BEFORE UPDATE ON mymy 
FOR EACH ROW BEGIN 
    SET NEW.column1 = OLD.column1, NEW.column2 = OLD.column2 
END 
+0

反對票是什麼? - 這不是爲你的問題提供答案嗎? – Steve 2013-02-20 15:14:25