- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定カラム値が規定値以上になった場合発動するトリガ)
トリガ作成方法についての質問
このQ&Aのポイント
- MySQLのトリガを使用して特定の条件下でテーブルのデータを別のテーブルにコピーする方法について教えてください。
- テーブルabcのカラムabc2_vote_volumeが50を超えた場合、テーブルdefにデータをコピーするトリガの作成方法について教えてください。
- トリガ作成時に使用するSQL文にエラーが発生してしまい、改定方法が分からない状況です。詳しい方に教えていただけますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じかな DROP TRIGGER IF EXISTS a_ref; DELIMITER // CREATE TRIGGER a_ref BEFORE INSERT ON abc FOR EACH ROW BEGIN IF(SELECT COUNT(*) FROM abc)>=49 THEN INSERT INTO def SET def1_id =NEW.abc1_id,def2_vote_volume=NEW.abc2_vote_volume; END IF; END; // DELIMITER ;
お礼
有難うございます。 私の記入方法が悪かったのですが、abc1_idは投票した人のIDではなく、投票される側のIDです。従い、abc1_idを数える方法では「投票数が50になると起動」という目的は達成出来ませんでした。 しかしながら、今回頂いたヒントを元に、下記で所期の目的を達成することが出来ました。 有難うございました。感謝申し上げます。 DELIMITER // CREATE TRIGGER a_ref AFTER UPDATE ON abc FOR EACH ROW BEGIN IF(SELECT abc2_vote_volume FROM abc where abc2_vote_volume>=50) THEN INSERT INTO def SET def1_id =NEW.abc1_id,def2_vote_volume=NEW.abc2_vote_volume; END IF; END; // DELIMITER ;