sql >> データベース >  >> RDS >> Oracle

予防トリガー

    あなたには生年月日があります。したがって、DoBが今日より少なくとも16年前であることを確認する必要があります。これを行うにはさまざまな方法があります。これがインターバルリテラルを使用したものです。

    create or replace trigger students_biur
         before insert or update on students for each row 
    begin
        if (:new.student_birthdate + INTERVAL '15' YEAR ) < sysdate
        then 
             raise_application_error( -20000, 'This student is too young be registered.');     
        end if;
    end; 
    

    このトリガーは更新もチェックし、その後の変更で生徒が無効になるのを防ぎます。

    トリガー名students_biur これは、私が使用する単なる規則です。各* R*owの*B* before * I * nsert * U*pdateを示す接尾辞が付いたテーブル名です。

    RAISE_APPLICATION_ERRORは、メッセージとともにユーザー定義の例外をスローするための標準的なプロシージャです。詳細をご覧ください。

    Oracleは、ユーザー定義のエラー用に-20999〜-20000の範囲を予約しています。その他の数値は、オラクル定義の例外と衝突する可能性があります。




    1. ClusterControl1.8.2を使用したPostgreSQLv13のデプロイとスケーリング

    2. ウェビナー:PostgreSQL11の新機能[フォローアップ]

    3. SQLiteの日付/時刻関数の有効な修飾子

    4. EntityFrameworkCoreを使用した部分的な主キーの自動インクリメント