HOME»データベーススペシャリスト掲示板»平成30 午後1 問2 設問2 (2)
投稿する

平成30 午後1 問2 設問2 (2) [0141]

 素人さん(No.1) 
回答の実行タイミングが、削除の後ですが、
削除の後では、行を別テーブルに移動ができないと考えています。(削除されてる為、レコードがない)
なので、実行タイミングは削除前が適切だと考えています。(レコードが削除される前の存在しているうちに挿入)
なぜ、削除後なのか、ご教示頂けないでしょうか。
2020.10.05 18:58
DCLさん(No.2) 
私自身もまだまだ勉強中の身ですが、お答えさせていただきます。
問題文の中で2つ注目すべき点があります。

・1つ目は既存の従業員テーブルの削除トリガの説明箇所
「実行タイミングを"従業員"テーブルの削除の【後】としたトリガを定義している」
※トリガ内容は設問の"従業員家族"テーブルと同じで削除したデータを別テーブルに挿入するというものです。
つまり「削除の後に削除データ別テーブルに挿入する」という
トリガが問題文のなかで既に実装されているということになります。

・2つ目はトリガの説明箇所
「実行タイミングを挿入・更新・削除の【前】として定義したトリガ処理の中でテーブルに対する変更操作を行うことはできない」

以上により
少なくとも問題文の中で判断すれば、削除の後におこなうことが正しいということになります。
2020.10.05 22:37
 素人さん(No.3) 
確かに、問題文から全て読み取れますね。。
ご回答くださりありがとうございました!!
2020.10.11 18:54
mkkさん(No.4) 
蛇足かもしれませんが・・・

Ins/Upd/Delに紐づけたトリガは、処理前・処理後の値を参照することができます。
つまり素人さまが仰るような『削除されてる為、レコードがない』状況でも
対象行のデータを別テーブルに移動する事が可能となります。

そのうえで、問題文やDCLさまの回答を読み込むと
削除後とされているのもしっくりくるのかもしれません。
2020.10.11 21:29
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop