私はちょうど Oracle を学んでいて、トリガーとシーケンスの概念を理解しています。私が見つけられないように見えるのは、それらが SqlServer Identity 設定と同様の自動インクリメント方式でどのように一緒に使用されるかです。非常に単純な例では、EmployeeID (PK)、FirstName、LastName の 3 つのフィールド (すべて必須) を持つ Employees というテーブルがあります。ID フィールドの次の値を取得するシーケンスを作成しました。次に、次のようなトリガーを作成しました。
CREATE OR REPLACE TRIGGER MyFirstTrigger
BEFORE INSERT ON EMPLOYEES FOR EACH ROW
BEGIN
Select EMP_SEQ.NextVal into :NEW.EMPLOYEEID from dual;
END MyFirstTrigger;
/
しかし、これは挿入ステートメントでどのように使用されるのでしょうか? FirstName と LastName の値のみを含む挿入ステートメントは、「十分な値がありません」という理由で失敗します (ちなみに、私は Toad を使用しています)。EMP_SEQ.NextVal を挿入ステートメントの最初の値として含める必要がある場合、トリガーのポイントは何ですか?
うまくいけば、これは理にかなっています。前もって感謝します。