sql >> Databasteknik >  >> RDS >> Oracle

PLSQL :NY och :GAMMEL

Du använder normalt termerna i en trigger med :old för att referera till det gamla värdet och :new för att referera till det nya värdet.

Här är ett exempel från Oracle-dokumentationen som länkas till ovan

CREATE OR REPLACE TRIGGER Print_salary_changes
  BEFORE DELETE OR INSERT OR UPDATE ON Emp_tab
  FOR EACH ROW
WHEN (new.Empno > 0)
DECLARE
    sal_diff number;
BEGIN
    sal_diff  := :new.sal  - :old.sal;
    dbms_output.put('Old salary: ' || :old.sal);
    dbms_output.put('  New salary: ' || :new.sal);
    dbms_output.put_line('  Difference ' || sal_diff);
END;

I det här exemplet aktiveras utlösaren BEFORE DELETE OR INSERT OR UPDATE :old.sal kommer att innehålla lönen före triggeravlossningen och :new.sal kommer att innehålla det nya värdet.



  1. Lista alla index i en SQLite-databas

  2. Var man kan ladda ner Runtime Kit för Microsoft Access 2016

  3. Ett nytt sätt att anpassa din PostgreSQL-övervakning med Prometheus

  4. MySQL:Vad är en omvänd version av LIKE?