• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定カラム値が規定値以上になった場合発動するトリガ)

トリガ作成方法についての質問

このQ&Aのポイント
  • MySQLのトリガを使用して特定の条件下でテーブルのデータを別のテーブルにコピーする方法について教えてください。
  • テーブルabcのカラムabc2_vote_volumeが50を超えた場合、テーブルdefにデータをコピーするトリガの作成方法について教えてください。
  • トリガ作成時に使用するSQL文にエラーが発生してしまい、改定方法が分からない状況です。詳しい方に教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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 ;

tajix14
質問者

お礼

有難うございます。 私の記入方法が悪かったのですが、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 ;

関連するQ&A