我希望觸發器在插入每條記錄後運行。如何在每次插入後觸發觸發器 - Oracle(批量插入)
此驗證工作正常,如果我有一個簡單的插入這樣的:
insert into g_dossier values
(112334, 'BBT', 'LPO','TTS','Y') ;
然而,當它就像一個批量插入這樣的:
INSERT INTO g_piece(
refpiece,
typpiece,
class_piece
group_piece
flag_piere)
SELECT :new.element_num,
PROC_TYPE,
DECODE(piece_it, 'F', 'FTTR', 'N', 'FTTR', NULL),
DECODE(piece_it, 'T', 'TTSN', 'N', 'TTSN', NULL),
'N'
FROM t_elements
WHERE :new.db_piece_flag = 'Y';
觸發變異。我希望驗證在作爲批量插入完成時也可以工作。
造成這個問題的查詢
SELECT COUNT(*)
INTO existing_cmcl_cnt
FROM g_piece cmcl
WHERE cmcl.class_piece= :new.class_piece
的問題是,這個查詢被稱爲應用在同一個表「g_piece」觸發。當我進行一個簡單的插入(插入g_piece值(...))時,我沒有這個問題。
我該如何避免這個問題? 謝謝。
我使用的是Oracle 10g – Messady
好吧,那麼您將不得不選擇@Benoit解釋的解決方案之一。 – Aitor