データベース
データベーストリガの種類と動作に関する説明として、最も適切なものはどれか。
ア.BEFOREトリガはSQL文の実行前に起動し、データを変更前に検証・加工できる。AFTER トリガはSQL文の実行後に起動し、連鎖的な処理(ログ記録・別テーブル更新)に向いている。正解
イ.BEFOREトリガはINSERT専用で、UPDATE・DELETEにはAFTERトリガのみ使用できる。
ウ.INSTEAD OFトリガはビューに対して直接UPDATE・DELETEを実行させるために使うが、テーブルには使えない。
エ.トリガは一つのテーブルに一種類しか設定できず、BEFORE・AFTER・INSTEAD OFを同時に設定することは禁止されている。
解説
トリガは「SQL文に連動する自動発火装置」。タイミング(BEFORE/AFTER/INSTEAD OF)×イベント(INSERT/UPDATE/DELETE)の組み合わせで動作が決まる。料理で言えば、食材チェック(BEFORE)→調理(SQL)→盛り付け(AFTER)の順番。
なぜ ア が正解か
アが正解。BEFOREトリガはSQL実行前に起動するため、入力値の検証や自動補完(例:created_atの自動セット)に最適。AFTERトリガはSQL完了後に起動するため、監査ログ記録・別テーブルへの連鎖更新などに使われる。
出典: AI生成問題(学習用)
← 前の問題
SQLウィンドウ関数に関する次のクエリの動作として、最も適切なものはどれか。 SELECT name, dept, salary, ROW_NUMBER() OVER (PARTITION BY dept ORDER BY salary DESC) AS rn, RANK() OVER (PARTITION BY dept ORDER BY salary DESC) AS rk FROM employees;
次の問題 →
データベースのバックアップ戦略として、フルバックアップ・差分バックアップ・増分バックアップを組み合わせるシステムがある。リストア時間を最短化したい場合の最適な戦略として、最も適切なものはどれか。