Old and new value : NEW OLD « Trigger « Oracle PL/SQL 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>
SQL> CREATE OR REPLACE TRIGGER before_insert_row
  2     BEFORE INSERT
  3     ON game_player
  4     FOR EACH ROW
  5  BEGIN
  6     DBMS_OUTPUT.put_line ('Before Insert Row');
  7     DBMS_OUTPUT.put_line ('Old ID ' || :OLD.player_id);
  8     DBMS_OUTPUT.put_line ('New ID ' || :NEW.player_id);
  9     DBMS_OUTPUT.put_line ('Old ROWID ' || ROWIDTOCHAR (:OLD.ROWID));
 10     DBMS_OUTPUT.put_line ('New ROWID ' || ROWIDTOCHAR (:NEW.ROWID));
 11  END;
 12  /

Trigger created.

SQL>
SQL> BEGIN
  2     INSERT INTO game_player(player_id, game_id, group_number, marked, pcmac, score)
  3          VALUES (1, 1, 1, 'Y', 'N', NULL);
  4
  5     UPDATE game_player
  6        SET player_id = player_id;
  7
  8     DELETE      game_player;
  9  END;
 10
 11  /

PL/SQL procedure successfully completed.

SQL>
SQL> drop table game_player;

Table dropped.








28.3.NEW OLD
28.3.1.Old and new value
28.3.2.Reference new value with :NEW in a before insert or update trigger
28.3.3.Refernece an old value in :OLD after update trigger
28.3.4.:old and :new Pseudo-records, Example 1
28.3.5.:old and :new Pseudo-records, Example 2
28.3.6.Raise application error in a trigger in case of invalid new value
28.3.7.REFERENCING OLD AS old NEW AS new
28.3.8.REFERENCING OLD AS old_values NEW AS new_values
28.3.9.Output new and old value in a before update trigger