sql >> Database teknologi >  >> RDS >> Oracle

Trigger, der indsætter række i logtabel ved indsættelse eller sletning i en persontabel, der er kompileret med fejl

Da du ikke postede fejlen, må jeg gætte. Mit gæt er, at problemet er det name er ikke en gyldig identifikator i denne sammenhæng. Du skal referere til enten :new.name eller :old.name . :old.name vil være NULL på en indsættelse, mens :new.name vil være NULL på en sletning, så jeg går ud fra, at du vil have noget lignende

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. Er sammenligning af strenge i MySQL sårbar over for timingangreb?

  2. Sådan håndteres BOB-undtagelser

  3. dato/klokkeslæt Konvertering mellem forskellige tidszoner

  4. Slet data fra alle tabeller i MYSQL