Oracle
 sql >> Baza danych >  >> RDS >> Oracle

wstawianie/aktualizacje/usuwanie logów w bazie danych Oracle

Wiele przykładów wyzwalaczy można znaleźć w dokumentacji Oracle. To, czego potrzebujesz, to po wstawieniu, zaktualizowaniu i usunięciu dla każdego wyzwalacza wiersza, aby wypełnić tabele dziennika. Oto kilka przykładów z dokumentów Oracle:

http://docs.oracle.com/cd /B28359_01/appdev.111/b28370/triggers.htm#LNPLS020

CREATE TABLE Emp_log (
  Emp_id     NUMBER,
  Log_date   DATE,
  New_salary NUMBER,
  Action     VARCHAR2(20));

 CREATE OR REPLACE TRIGGER Log_salary_increase_ARUID
  AFTER UPDATE OR INSERT OR DELETE ON emp
  FOR EACH ROW
BEGIN
  -- Can be separated for Inserting then Updating with addl if
  -- In this case it may be easier to control and/or add flags to your log tables
  -- such as Action = 'INS' or Action = 'UPD' --
  If (INSERTING OR UPDATING) 
  THEN
    -- Insert newly created/updated values to your log table --
    INSERT INTO Emp_log (Emp_id, Log_date, New_salary, Action)
     VALUES (:NEW.Empno, SYSDATE, :NEW.SAL, 'INS_UPD');
  ELSE  
    -- Deleting - insert old or deleted values to your logs --
   INSERT INTO Emp_log (Emp_id, Log_date, New_salary, Action)
     VALUES (:OLD.Empno, SYSDATE, :OLD.SAL, 'DEL');
END;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:konwertuj liczby na słowa w innym języku niż angielski

  2. Zwróć wiersze zawierające wartości liczbowe w Oracle

  3. Ramka danych R do tabeli Oracle SQL:nie można przydzielić pamięci

  4. Wstawianie danych do tabeli za pomocą Execute Immediate w Oracle

  5. Oracle DROP TABLE IF EXISTS Alternatywy