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

挿入、更新、削除後のPL / SQLトリガーで、シーケンスを使用してデータをログ表に入力します

    挿入ステートメントでシーケンス値を使用しているので、

       INSERT INTO dd_paytrack
               (idtrack, pt_user, pt_date,
                pt_action, pt_payid
               )
        VALUES (idtrack_seq.NEXTVAL, USER, TO_CHAR (SYSDATE, 'DD-MON-YY'),
                log_action, id_pay
               );
    

    以下のように選択する必要はありません。

    SELECT idtrack_seq.NEXTVAL
     INTO :NEW.idtrack
     FROM DUAL;
    

    また、この行のコロンを見逃しました。

          id_pay := :OLD.idpay;
    

    編集:もう1つ、トリガーにDBMS_OUTPUTステートメントを含めても意味がありません。見えないので、たとえ実行が到達しても。



    1. [ビデオ]AnsibleとPostgreSQL

    2. GROUP BY句を使用してjson集計結果に正しい属性名を設定するにはどうすればよいですか?

    3. Oracleで文字列を分割する方法

    4. MySQLヘルプ:価格<=20およびstatus='unpaid'までの顧客からのすべての注文を検索する方法