2012-04-11 18 views
1

mysqlトリガーに関する助けが必要です。私は現在、いくつかのコードを整理して、2つのクエリやジョインを実行するのではなく、mysqlデータベースに処理をオフロードしようとしています。カテゴリを更新します。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

答えて

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

これはWHERE二回使用されている、有効なMySQLのなステートメントではありません!

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; 
関連する問題