sql >> Databáze >  >> RDS >> Oracle

Spouštěč, který vloží řádek do tabulky protokolu při vložení nebo odstranění v tabulce osob sestavené s chybami

Protože jste chybu nenapsal, musím hádat. Hádám, že problém je v tom name není v tomto kontextu platným identifikátorem. Musíte odkazovat buď na :new.name nebo :old.name . :old.name bude NULL na vložce while :new.name bude NULL na smazání, takže předpokládám, že chcete něco jako

CREATE OR REPLACE TRIGGER add_del
  BEFORE INSERT OR DELETE ON persons
  FOR EACH ROW
BEGIN
  IF INSERTING THEN
    INSERT INTO logs (who, what) VALUES (:new.name, 'Insert into persons');
  ELSE
    INSERT INTO logs (who, what) VALUES (:old.name, 'Delete from persons');
  END IF;
END;



  1. AssertionError:připojení k databázi není nastaveno na UTC

  2. Počítejte hodnoty přes m/n připojených tabulek v SQL

  3. Hibernate:Generátor ID využívající inkrementaci a Oracle Schema

  4. mysql příkaz SELECT IF s NEBO