/* web example
CREATE OR REPLACE TRIGGER TEST_SEQ_TRIGGER
BEFORE INSERT ON TESTUSER.EMPLOYEE
FOR EACH ROW
BEGIN
IF :new.SSN IS NULL THEN
SELECT TEST_SEQUENCE.nextval INTO :new.SSN FROM DUAL;
END IF;
END;
web example end
*/
create or replace trigger Work_Center_Insert_Tr
before insert on Work_Center
for each row
DECLARE
v_Work_Center_Id
Work_Center.Work_Center_Id%TYPE;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO v_Work_Center_Id
FROM dual;
:NEW.Work_Center_Id:=v_Work_Center_Id;
END;
CREATE OR REPLACE
TRIGGER NEW_EVALUATION_TRIGGER
BEFORE INSERT ON EVALUATIONS
FOR EACH ROW
BEGIN
:NEW.evaluation_id := evaluations_sequence.NEXTVAL;
END;
-- The title of the NEW_EVALUATION_TRIGGER pane is in italic
font, indicating that
--the trigger is not yet saved in the database.
--In the CREATE TRIGGER statement, replace NULL with this:
--:NEW.evaluation_id := evaluations_sequence.NEXTVAL
CREATE OR REPLACE TRIGGER TEST_SEQ_TRIGGER
BEFORE INSERT ON TESTUSER.EMPLOYEE
FOR EACH ROW
BEGIN IF :new.SSN IS NULL
THEN SELECT TEST_SEQUENCE.nextval
INTO :new.SSN
FROM DUAL;
END IF;
END;
describe customer;
-- Sample trigger
CREATE OR REPLACE TRIGGER employee_tr
BEFORE INSERT ON employee
FOR EACH ROW
DECLARE v_employee_id employee.employee_id%TYPE;
BEGIN
SELECT employee_ID_SEQ.NEXTVAL
INTO v_employee_id
FROM dual;
:NEW.employee_id:=v_employee_id;
END;
CREATE OR REPLACE TRIGGER dept_tr
BEFORE INSERT ON departments
FOR EACH ROW
WHEN (new.id IS NULL)
BEGIN
SELECT dept_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
--/*Test it using the automatic and manual population methods.
/*SQL> INSERT INTO departments (description)
2 VALUES ('Development');
1 row created.
*/
SELECT * FROM departments;
ID DESCRIPTION
---------- --------------------------------------------------
1 Development
1 row selected.
SQL> INSERT INTO departments (id, description)
2 VALUES (dept_seq.NEXTVAL, 'Accounting');
1 row created.
SQL> SELECT * FROM departments;
ID DESCRIPTION
---------- --------------------------------------------------
1 Development
2 Accounting
*/
--
=================================================================
===========================
-- Trigger 1
==
describe Customer;
insert into Customer
(
NAME
,streET_ADDRESS
,CITY
,STATE
,ZIP
,YTD_PURCHASES
,CREDIT_LIMIT
,OUTSTANDING_BALANCE
,DISCOUNT_PERCENT
,LAST_UPDATED_BY
,LAST_UPDATE_DATE
)
values
(
'Amy Cashier'
,'548 Main Street'
,'Louisville'
,'KY'
,'50404'
,123.45
,5000.00
,123.45
,10
,USER
,SYSDATE
);
CREATE OR REPLACE TRIGGER dept_bir
BEFORE INSERT ON departments
FOR EACH ROW
WHEN (new.id IS NULL)
BEGIN
SELECT dept_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
--MODEL FOLLOWS
create or replace trigger Work_Center_Insert_Tr
before insert on Work_Center
for each row
DECLARE
v_Work_Center_Id Work_Center.Work_Center_Id%TYPE;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO v_Work_Center_Id
FROM dual;
:NEW.Work_Center_Id:=v_Work_Center_Id;
END;
--MODEL ABOVE
ALTER Customer
DISABLE ALL TRIGGERS;
DROP Customer_Insert_Tr;
create or replace trigger Customer_Insert_Tr
before insert on Customer
for each row
declare v_Customer_Id Customer.Customer_Id%type;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO :v_CUSTOMER_ID
FROM dual;
:new.Customer_id := v_customer_Id;
END;
-- Trigger 2
describe Order_Master;
drop trigger Order_Archive_Tr;
create or replace trigger Order_Master_Insert_Tr
before insert on Order_Master
for each row
--when (new.Order_Id is null);
DECLARE
v_Order_Id Order_Master.Order_Id%TYPE;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO :NEW.Order_Id
--v_Order_Id
FROM dual;
-- :NEW.Order_Id:=v_Order_Id;
END;
insert into order_Master
(Order_Date
,
Customer_Id
,
LAST_UPDATED_By
,
LAST_UPDATE_DATE
)
values
(
SYSDATE
,
55
,
'APPAS'
,SYSDATE
);
-- Trigger 3
select * from Product;
describe Product;
create or replace trigger Product_Insert_Tr
before insert on Product
for each row
DECLARE v_Product_Id Product.Product_Id%TYPE;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO v_Product_Id
FROM dual;
:NEW.Product_Id:=v_Product_Id;
END;
-- Trigger 4
SELECT * FROM wORK_cENTER;
describe Work_Center;
create or replace trigger Work_Center_Insert_Tr
before insert on Work_Center
for each row
DECLARE
v_Work_Center_Id Work_Center.Work_Center_Id%TYPE;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO v_Work_Center_Id
FROM dual;
:NEW.Work_Center_Id:=v_Work_Center_Id;
END;
insert into Work_Center
(name
,Capacity
,Last_updated_by
,
Last_Update_date
)
values
('Wausau, WI)'
,
250
,
USER
,
SYSDATE
);
-- Trigger 5
describe Customer;
describe Customer_History;
create or replace trigger Customer_Archive_Tr
before insert on Customer
for each row
DECLARE
v_Customer_History_Id Customer.Customer_Id%TYPE;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO v_Customer_History_Id
FROM dual;
insert into Customer_History
values
(v_Customer_History_Id
,
USER,
SYSDATE,
:old.Customer_Id,
:old.Name,
:old.Street_address
,
:old.City,
:old.State,
:old.Zip,
:old.Ytd_Purchases
,
:old.credit_limit
,
:old.OUTSTANDING_BALANCE
,
:old.Discount_Percent
,
:old.last_updated_by
,
:old.LAST_UPDATE_DATE
) ;
end;
-- Trigger 6
describe Order_Master;
describe Order_History;
create or replace trigger Order_Archive_Tr
before insert on Order_Master
for each row
DECLARE
v_Order_History_Id
Order_Master.Order_Id%TYPE;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO v_Order_History_Id
FROM dual;
insert into Order_History
values
(v_Order_History_Id
,
USER
,
SYSDATE
,
:old.Order_Id
,
:old.Order_Date
,
:old.Customer_Id
,
:old.Last_updated_by
,
:old.Last_Update_Date
) ;
end;
-- Trigger 7
describe Order_Detail;
describe Order_Dtl_History;
create or replace trigger Order_Dtl_Archive_Tr
before insert on Order_Detail
for each row
DECLARE
v_Order_Dtl_History_Id
Order_Detail.Order_Id%TYPE;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO v_Order_Dtl_History_Id
FROM dual;
insert into Order_Dtl_History
values
(v_Order_Dtl_History_Id
,
USER
,
SYSDATE
,
:old.Order_Id
,
:old.Product_Id
,
:old.Qty_Ordered
,
:old.Last_updated_by
,
:old.Last_Update_Date
) ;
end;
-- Trigger 8
describe Product ;
describe Product_History;
create or replace trigger Product_Archive_Tr
before insert ON Product
for each row
DECLARE
v_History_Id Product_History.History_Id%TYPE;
begin
SELECT Pvfc_Seq.NEXTVAL
INTO v_History_Id
FROM dual;
insert into Product_History
values
(v_History_Id
,
USER
,
SYSDATE
,
:old.Product_Id
,
:old.Product_Line_Cd
,
:old.Location_Cd
,
:old.Finish_Cd
,
:old.Description
,
:old.Unit_Price
,
:old.Qty_On_Hand
,
:old.Qty_Backordered
,
:old.Reorder_Point
,
:old.Reorder_Qty
,
:old.Scheduled_Receipts
,
:old.Last_Updated_By
,
:old.Last_Update_Date
);
end;

Triggers-Sequences-SQL

  • 1.
    /* web example CREATEOR REPLACE TRIGGER TEST_SEQ_TRIGGER BEFORE INSERT ON TESTUSER.EMPLOYEE FOR EACH ROW BEGIN IF :new.SSN IS NULL THEN SELECT TEST_SEQUENCE.nextval INTO :new.SSN FROM DUAL; END IF; END; web example end */ create or replace trigger Work_Center_Insert_Tr before insert on Work_Center for each row DECLARE v_Work_Center_Id Work_Center.Work_Center_Id%TYPE; begin SELECT Pvfc_Seq.NEXTVAL INTO v_Work_Center_Id FROM dual; :NEW.Work_Center_Id:=v_Work_Center_Id; END; CREATE OR REPLACE TRIGGER NEW_EVALUATION_TRIGGER BEFORE INSERT ON EVALUATIONS FOR EACH ROW BEGIN :NEW.evaluation_id := evaluations_sequence.NEXTVAL; END;
  • 2.
    -- The titleof the NEW_EVALUATION_TRIGGER pane is in italic font, indicating that --the trigger is not yet saved in the database. --In the CREATE TRIGGER statement, replace NULL with this: --:NEW.evaluation_id := evaluations_sequence.NEXTVAL CREATE OR REPLACE TRIGGER TEST_SEQ_TRIGGER BEFORE INSERT ON TESTUSER.EMPLOYEE FOR EACH ROW BEGIN IF :new.SSN IS NULL THEN SELECT TEST_SEQUENCE.nextval INTO :new.SSN FROM DUAL; END IF; END; describe customer; -- Sample trigger CREATE OR REPLACE TRIGGER employee_tr BEFORE INSERT ON employee FOR EACH ROW DECLARE v_employee_id employee.employee_id%TYPE; BEGIN SELECT employee_ID_SEQ.NEXTVAL INTO v_employee_id FROM dual;
  • 3.
    :NEW.employee_id:=v_employee_id; END; CREATE OR REPLACETRIGGER dept_tr BEFORE INSERT ON departments FOR EACH ROW WHEN (new.id IS NULL) BEGIN SELECT dept_seq.NEXTVAL INTO :new.id FROM dual; END; --/*Test it using the automatic and manual population methods. /*SQL> INSERT INTO departments (description) 2 VALUES ('Development'); 1 row created. */ SELECT * FROM departments; ID DESCRIPTION ---------- -------------------------------------------------- 1 Development 1 row selected. SQL> INSERT INTO departments (id, description) 2 VALUES (dept_seq.NEXTVAL, 'Accounting');
  • 4.
    1 row created. SQL>SELECT * FROM departments; ID DESCRIPTION ---------- -------------------------------------------------- 1 Development 2 Accounting */ -- ================================================================= =========================== -- Trigger 1 == describe Customer; insert into Customer ( NAME ,streET_ADDRESS ,CITY ,STATE ,ZIP ,YTD_PURCHASES ,CREDIT_LIMIT ,OUTSTANDING_BALANCE ,DISCOUNT_PERCENT ,LAST_UPDATED_BY ,LAST_UPDATE_DATE ) values ( 'Amy Cashier' ,'548 Main Street' ,'Louisville' ,'KY' ,'50404' ,123.45 ,5000.00 ,123.45 ,10 ,USER ,SYSDATE ); CREATE OR REPLACE TRIGGER dept_bir BEFORE INSERT ON departments FOR EACH ROW WHEN (new.id IS NULL) BEGIN SELECT dept_seq.NEXTVAL INTO :new.id
  • 5.
    FROM dual; END; --MODEL FOLLOWS createor replace trigger Work_Center_Insert_Tr before insert on Work_Center for each row DECLARE v_Work_Center_Id Work_Center.Work_Center_Id%TYPE; begin SELECT Pvfc_Seq.NEXTVAL INTO v_Work_Center_Id FROM dual; :NEW.Work_Center_Id:=v_Work_Center_Id; END; --MODEL ABOVE ALTER Customer DISABLE ALL TRIGGERS; DROP Customer_Insert_Tr; create or replace trigger Customer_Insert_Tr before insert on Customer for each row declare v_Customer_Id Customer.Customer_Id%type; begin SELECT Pvfc_Seq.NEXTVAL INTO :v_CUSTOMER_ID FROM dual; :new.Customer_id := v_customer_Id;
  • 6.
    END; -- Trigger 2 describeOrder_Master; drop trigger Order_Archive_Tr; create or replace trigger Order_Master_Insert_Tr before insert on Order_Master for each row --when (new.Order_Id is null); DECLARE v_Order_Id Order_Master.Order_Id%TYPE; begin SELECT Pvfc_Seq.NEXTVAL INTO :NEW.Order_Id --v_Order_Id FROM dual; -- :NEW.Order_Id:=v_Order_Id; END; insert into order_Master (Order_Date , Customer_Id , LAST_UPDATED_By , LAST_UPDATE_DATE ) values (
  • 7.
    SYSDATE , 55 , 'APPAS' ,SYSDATE ); -- Trigger 3 select* from Product; describe Product; create or replace trigger Product_Insert_Tr before insert on Product for each row DECLARE v_Product_Id Product.Product_Id%TYPE; begin SELECT Pvfc_Seq.NEXTVAL INTO v_Product_Id FROM dual; :NEW.Product_Id:=v_Product_Id; END; -- Trigger 4 SELECT * FROM wORK_cENTER; describe Work_Center; create or replace trigger Work_Center_Insert_Tr before insert on Work_Center for each row
  • 8.
    DECLARE v_Work_Center_Id Work_Center.Work_Center_Id%TYPE; begin SELECT Pvfc_Seq.NEXTVAL INTOv_Work_Center_Id FROM dual; :NEW.Work_Center_Id:=v_Work_Center_Id; END; insert into Work_Center (name ,Capacity ,Last_updated_by , Last_Update_date ) values ('Wausau, WI)' , 250 , USER , SYSDATE ); -- Trigger 5 describe Customer; describe Customer_History; create or replace trigger Customer_Archive_Tr before insert on Customer for each row
  • 9.
    DECLARE v_Customer_History_Id Customer.Customer_Id%TYPE; begin SELECT Pvfc_Seq.NEXTVAL INTOv_Customer_History_Id FROM dual; insert into Customer_History values (v_Customer_History_Id , USER, SYSDATE, :old.Customer_Id, :old.Name, :old.Street_address , :old.City, :old.State, :old.Zip, :old.Ytd_Purchases , :old.credit_limit , :old.OUTSTANDING_BALANCE , :old.Discount_Percent , :old.last_updated_by , :old.LAST_UPDATE_DATE ) ; end; -- Trigger 6 describe Order_Master; describe Order_History;
  • 10.
    create or replacetrigger Order_Archive_Tr before insert on Order_Master for each row DECLARE v_Order_History_Id Order_Master.Order_Id%TYPE; begin SELECT Pvfc_Seq.NEXTVAL INTO v_Order_History_Id FROM dual; insert into Order_History values (v_Order_History_Id , USER , SYSDATE , :old.Order_Id , :old.Order_Date , :old.Customer_Id , :old.Last_updated_by , :old.Last_Update_Date ) ; end; -- Trigger 7 describe Order_Detail; describe Order_Dtl_History; create or replace trigger Order_Dtl_Archive_Tr
  • 11.
    before insert onOrder_Detail for each row DECLARE v_Order_Dtl_History_Id Order_Detail.Order_Id%TYPE; begin SELECT Pvfc_Seq.NEXTVAL INTO v_Order_Dtl_History_Id FROM dual; insert into Order_Dtl_History values (v_Order_Dtl_History_Id , USER , SYSDATE , :old.Order_Id , :old.Product_Id , :old.Qty_Ordered , :old.Last_updated_by , :old.Last_Update_Date ) ; end; -- Trigger 8 describe Product ; describe Product_History;
  • 12.
    create or replacetrigger Product_Archive_Tr before insert ON Product for each row DECLARE v_History_Id Product_History.History_Id%TYPE; begin SELECT Pvfc_Seq.NEXTVAL INTO v_History_Id FROM dual; insert into Product_History values (v_History_Id , USER , SYSDATE , :old.Product_Id , :old.Product_Line_Cd , :old.Location_Cd , :old.Finish_Cd , :old.Description , :old.Unit_Price , :old.Qty_On_Hand , :old.Qty_Backordered , :old.Reorder_Point , :old.Reorder_Qty , :old.Scheduled_Receipts , :old.Last_Updated_By , :old.Last_Update_Date
  • 13.