oracle11g – Oracle存储过程中触发器和语句的执行顺序
以下是我的表格结构:
Table -Customer CustomerID Blacklisted Customer Name 101 Y ABC 102 Y DEF Table -Blacklist CustomerID BlacklistID Customer Name 101 1011 ABC 102 1012 DEF Table -Reason BlacklistID ReasonID Reason Code 1012 02 Rcode2 主表“客户”是存储客户信息.如果有人在客户表中将黑名单更新为Y,则在“客户”表上更新后会触发记录在“黑名单”表中. >将Customer表中的列列为值’Y’和. 现在我的要求是将客户从后端列入黑名单.为此我正在使用以下查询编写存储过程: >更新客户设置blacklisted =’Y’,其中customerid =’102′; 现在要在Reason表中插入条目(步骤3),我需要BlacklistID这是一个外键,一旦客户表上的触发器得到规定,我将得到BlacklistID的值.所以我的困惑是,我可以假设触发更新在cntrl到达我的INSERT INTO reason(步骤3)语句之前,’Customer’表总是会被执行.请建议. 是.触发器是声明的一部分.虽然您无法完全确定执行同一语句中多个触发器的顺序,但您可以确定它们是在语句本身完成时完成的.因此,到第2步时,第1步的所有更新触发器都已触发.*)实际上,默认顺序是: >触发前的语句级别 但是,如果您在触发前有两个行级别,默认情况下您无法确定这两个行的执行顺序.但我从评论中了解到,在Oracle 11中,您实际上可以指定顺序来覆盖这些情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |