2012-04-11 161 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;