sql >> Databasteknik >  >> RDS >> Oracle

Trigger som infogar rad i loggtabellen vid infogning eller borttagning i en persontabell kompilerad med fel

Eftersom du inte postade felet måste jag gissa. Min gissning är att problemet är det name är inte en giltig identifierare i detta sammanhang. Du måste referera till antingen :new.name eller :old.name . :old.name kommer att vara NULL på en infogning medan :new.name kommer att vara NULL på en radering så jag antar att du vill ha något liknande

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. Kontrollera mySQL-versionen på Mac 10.8.5

  2. Mysql:Programmatiskt ta bort alla främmande nycklar

  3. Oracle datumfunktion för föregående månad

  4. PDO PHP bindValue fungerar inte