Trigger

創建插入後觸發器

  • September 13, 2017

我在表 tbl_user_order 中創建了一個觸發器。

我想在retailer_deliver_customer 表中插入數據。程式碼:-

create or replace trigger insert_record
after insert on tbl_user_order
for each row
BEGIN
insert into retailer_deliver_customer
(
prod_name,product_quantity,message,delivery_date,delivery_address,pin_code 
)
select
 :new.prod_name,
 :new.prod_quantity,
 :new.meessage,
 :new.delivery_date,
 :new.delivery_address,
 :new.pin_id
from tbl_user_order where pin_id=:new.pin_id;
commit;
end insert_record;
/

我有一次變異錯誤。

如果我在 :new.pin_id 中傳遞任何值,則它會插入,如果我們為它聲明變數,則會出錯。

您不需要選擇:

create or replace trigger insert_record
 after insert on tbl_user_order
 for each row
BEGIN
 insert into retailer_deliver_customer
   (prod_name,product_quantity,message,delivery_date,delivery_address,pin_code)
 values(
   :new.prod_name,
   :new.prod_quantity,
   :new.meessage,
   :new.delivery_date,
   :new.delivery_address,
   :new.pin_id);

end insert_record;
/

你不能commit在觸發器中。觸發器內的操作始終是觸發觸發器的事務的一部分。

引用自:https://dba.stackexchange.com/questions/185842