我有客戶 - > |級聯規則| - > orders_table - > |級聯規則| - > ORDER_DETAILS 在我ORDER_DETAILS我已經刪除後觸發遞增的數量在我的產品表火鳥停用觸發
CREATE OR ALTER TRIGGER TABLEAU_DETAIL_VENTES_AD0 FOR TABLEAU_DETAIL_VENTES
ACTIVE AFTER DELETE POSITION 0
AS
declare variable qte numeric_15_2;
begin
select qte_article from tableau_articles where id_article = old.id_article
into :qte;
qte = :qte + old.qte;
update tableau_articles
set qte_article = :qte
where id_article = old.id_article;
end
如果我刪除一個客戶端而不是所有的訂單,取決於它將被刪除 和orders_detail等。
問題是,刪除觸發器後的order_details將被觸發並增加產品數量,我不希望發生這種情況。
我的問題:有什麼辦法來知道觸發器是否已經被來自應用程序的級聯規則或sql刪除語句觸發?
我想實現這樣的:
如果觸發通過級聯規則,然後disable_all_triggers觸發。在此先感謝您的幫助。
也許你可以使用['RDB $ SET_CONTEXT'](http://www.firebirdsql。組織/文件/文件/ reference_manuals/reference_material/HTML/langrefupd25-intfunc-set_context.html)和['RDB $ GET_CONTEXT'](http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd25 -intfunc-get_context.html)來實現這一點。 –