我希望触发器在插入每条记录后运行。如何在每次插入后触发触发器 - 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