我希望触发器在插入的每条记录之后运行。
如果我有这样的简单插入,则此验证工作正常:
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 值(...))时,我没有这个问题。
我怎样才能避免这个问题?谢谢。