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

Oracle:トリガーでのサブクエリの使用

    このトリガーはそれを行います:

    CREATE OR REPLACE TRIGGER trigger_w_subquery
    AFTER UPDATE OR INSERT ON project_archiving
    FOR EACH ROW WHEN (old.archiving_status <> new.archiving_status
      AND new.archiving_status = 1
    )
    DECLARE
      l_offer projects.offer%TYPE;
    BEGIN
      SELECT offer INTO l_offer 
      FROM projects 
      WHERE projnum = :new.projnum;
    
      IF l_offer IS NULL THEN
        INSERT INTO offer_log (offer, status, date)
        VALUES (null, 9, sysdate);
      END IF;
    END;
    

    プロジェクトからの選択は常に行を見つけると思いました。そうでない場合は、処理が必要になる可能性のあるNO_DATA_FOUND例外が発生します。



    1. 日付型のテーブルを作成し、そのデフォルト値をMySQLのCURRENT_DATEとして使用します

    2. Hibernateの継承、Collections、および@OrderedByスーパークラス属性がMySQL構文エラーを生成します

    3. Hibernate:ロードしてはならないバイナリデータを含む列を選択します

    4. 時刻を抽出するためのより良い方法はありますか?