Tuesday, October 6, 2009

Trigger Sample

If you had a table created as follows:

CREATE TABLE orders
( order_id number(5),

quantity number(4),

cost_per_item number(6,2),

total_cost number(8,2),

create_date date,

created_by varchar2(10)
);

We could then create a BEFORE INSERT trigger as follows:

CREATE OR REPLACE TRIGGER orders_before_insert
BEFORE INSERT
    ON orders
    FOR EACH ROW

DECLARE
    v_username varchar2(10);

BEGIN

    -- Find username of person performing INSERT into table
    SELECT user INTO v_username
    FROM dual;

    -- Update create_date field to current system date
    :new.create_date := sysdate;

    -- Update created_by field to the username of the person performing the INSERT
    :new.created_by := v_username;

END;

No comments:

Post a Comment