Trigger Oracle PLSQL Tutorial

SQL>
SQL> CREATE TABLE game_player
  2  (player_id    NUMBER,
  3   game_id      NUMBER,
  4   group_number NUMBER,
  5   marked       VARCHAR2(1) DEFAULT 'N',
  6   pcmac        VARCHAR2(1) DEFAULT 'N',
  7   score        NUMBER,
  8   CONSTRAINT game_player_pk
  9   PRIMARY KEY (player_id, game_id, group_number));
Table created.
SQL>
SQL> CREATE TABLE game_player_audit
  2  (player_id    NUMBER,
  3   game_id      NUMBER,
  4   group_number NUMBER,
  5   old_marked   VARCHAR2(1),
  6   new_marked   VARCHAR2(1),
  7   old_pcmac    VARCHAR2(1),
  8   new_pcmac    VARCHAR2(1),
  9   old_score    NUMBER,
 10   new_score    NUMBER,
 11   change_date  DATE,
 12   operation    VARCHAR2(6));
Table created.
SQL>
SQL> CREATE OR REPLACE TRIGGER audit_update
  2  AFTER UPDATE OF marked, pcmac, SCORE ON game_player
  3  REFERENCING OLD AS prior_to_cheat NEW AS after_cheat
  4  FOR EACH ROW
  5  WHEN ( prior_to_cheat.marked != after_cheat.marked OR
  6         prior_to_cheat.pcmac != after_cheat.pcmac OR
  7         prior_to_cheat.score != after_cheat.score )
  8  BEGIN
  9    INSERT INTO game_player_AUDIT(player_id,game_id,group_number,
 10                            old_marked,new_marked,
 11                            old_pcmac,new_pcmac,
 12                            old_score,new_score,
 13                            change_date,operation)
 14    VALUES(:after_cheat.player_id,:after_cheat.game_id,:after_cheat.group_number,
 15           :prior_to_cheat.marked,:after_cheat.marked,
 16           :prior_to_cheat.pcmac,:after_cheat.pcmac,
 17           :prior_to_cheat.score,:after_cheat.score,
 18           SYSDATE,'UPDATE');
 19  END;
 20  /
Trigger created.
SQL>
SQL> drop table game_player;
Table dropped.
SQL>
SQL> drop table game_player_audit;
Table dropped.
SQL>