今回はMySQLでよく使われるストアドプロシージャとトリガーについて、解説します。
ストアドプロシージャとは、一連のSQLの処理をまとめてひとつの関数のように使えるものです。例えば、複数のテーブルへの操作をまとめて行いたい場合に便利です。
ストアドプロシージャは以下のように作成します:
DELIMITER //
CREATE PROCEDURE sample_procedure()
BEGIN
-- ここにSQL文を書きます
SELECT * FROM sample_table;
END //
DELIMITER ;
トリガーとは、特定のテーブルに対してINSERT、UPDATE、DELETEなどの操作が行われたとき、自動的に実行されるSQLのセットです。例えば、データの変更を記録したい場合に便利です。
トリガーは以下のように作成します:
CREATE TRIGGER sample_trigger
AFTER INSERT ON sample_table
FOR EACH ROW
BEGIN
-- ここにSQL文を書きます
INSERT INTO log_table (log_data) VALUES (NEW.data);
END;
ストアドプロシージャとトリガーは、MySQLを効率よく使いこなすための重要な機能です。ストアドプロシージャは複数の処理をまとめて実行できるので、手間が省けます。トリガーは特定の操作に自動的に反応するので、データの一貫性を保つのに役立ちます。