2012-04-11 128 views
1

我需要一些幫助與MySQL觸發器。我目前正在嘗試清理一些代碼,並卸載一些處理到MySQL數據庫,而不是運行2查詢和連接等...MySQL插入後觸發更新計數

當有人插入視頻到數據庫中,我希望視頻數在類別更新。

因此您指定類別ID。

這是我到目前爲止所以任何幫助將是好的,因爲我似乎無法得到正確的語法。

CREATE TRIGGER 'db_videos'.'update_video_count' 
AFTER INSERT ON 'videos' FOR EACH ROW 
BEGIN 
    UPDATE video_cat WHERE video_count = video_count + 1 WHERE video_cat = video_cat; 
END; 
+0

這個查詢是無效的,即使它是它不會做任何事情。在你的where子句中,你有條件檢查'video count = video count + 1'。這就像試圖做一個SQL選擇'WHERE 0 = 1'。請發佈您的視頻表的DDL。 – Perception 2012-04-11 20:57:47

回答

2

您的where子句是重複且含糊不清的。如果我理解你的數據模型正確,請嘗試:

CREATE TRIGGER 'db_videos'.'update_video_count' 
AFTER INSERT ON 'videos' FOR EACH ROW 
BEGIN 
    UPDATE video_cat vc 
     WHERE video_count = video_count + 1 
     and NEW.video_cat = vc.video_cat; 
END; 
-3

這不是一個有效的mysql語句,你在使用WHERE兩次!?

1

嘗試以下操作:

CREATE TRIGGER 'db_videos'.'update_video_count' 
AFTER INSERT ON 'videos' FOR EACH ROW 
BEGIN 
    UPDATE video_cat vc 
     SET video_count = video_count + 1 
     WHERE NEW.video_cat = vc.video_cat; 
END;