2015-09-07 67 views
2

我需要幫助您使用phpmyadmin中的觸發器語法。我有一個名爲Log有以下幾列表:phpmyadmin中的MYSQL觸發器語法問題

ID, Client_Name, Employee_Name, Start_Date, End_Date, Time. 

前三列無關的觸發器。 Start_Date是當前時間戳,End_Date是更新時的當前時間戳。

觸發器是AFTER UPDATE觸發器。它應該計算Time列中Start_Date和End_Date小時之間的差異。

回答

1

語法在manual中解釋。您可以使用TIMEDIFF()來計算已用時間。

CREATE TRIGGER trig1 BEFORE UPDATE ON Log FOR EACH ROW 
SET NEW.time=TIMEDIFF(NEW.End_Date,NEW.Start_Date); 

編輯:以上觸發必須BEFORE觸發操作數據。鑑於OP中提到的預期用途(更新單列)在這應該罰款。

+0

好吧,我用BEFORE重寫了它,現在我得到了另一個我無法弄清楚的錯誤......「#1064 - 你的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊爲正確的語法以線4" 附近使用 'END''CREATE TRIGGER TRIG1 BEFORE UPDATE登錄FOR EACH ROW BEGIN SET NEW.time = TIMEDIFF(NEW.End_Date,START_DATE) END' –

+0

對不起關於我回復的方式,並不真正習慣於將回復作爲發送回覆,所以我經常編輯我的評論。 –

+1

@DeanIvanov,我刪除了'BEGIN' ...'END',以免遇到問題分隔符。現在就去吧。 – vhu