<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>glufke.net &#187; Triggers</title>
	<atom:link href="http://glufke.net/tag/triggers/feed/" rel="self" type="application/rss+xml" />
	<link>http://glufke.net</link>
	<description></description>
	<lastBuildDate>Mon, 16 Apr 2012 19:33:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Execução ordenada nas triggers</title>
		<link>http://glufke.net/2009/05/14/execucao-ordenada-nas-triggers_oracle11g/</link>
		<comments>http://glufke.net/2009/05/14/execucao-ordenada-nas-triggers_oracle11g/#comments</comments>
		<pubDate>Thu, 14 May 2009 12:41:49 +0000</pubDate>
		<dc:creator>glufke</dc:creator>
				<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[Triggers]]></category>

		<guid isPermaLink="false">http://glufke.net/?p=95</guid>
		<description><![CDATA[
			
			
			
			
			
			
			
						
			A partir do Oracle 8i é possível criar mais de uma trigger do mesmo tipo na mesma tabela. Exemplo: duas triggers AFTER EACH ROW on INSERT. O tipo de trigger determina a ordem de execução: As BEFORE são executadas antes, e as AFTER depois. Contudo, como saber qual trigger executará primeiro quando se tem duas [...]]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="">
			<div style="float:left; width:50px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fglufke.net%2F2009%2F05%2F14%2Fexecucao-ordenada-nas-triggers_oracle11g%2F&amp;layout=button_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:50px; height:21px;"></iframe></div>
			<div style="float:left; width:60px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://glufke.net/2009/05/14/execucao-ordenada-nas-triggers_oracle11g/"></g:plusone>
			</div>
			<div style="float:left; width:70px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://glufke.net/2009/05/14/execucao-ordenada-nas-triggers_oracle11g/"  data-text="Execução ordenada nas triggers" data-count="horizontal" data-via="glufke"></a>
			</div><div style="float:left; width:110px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://glufke.net/2009/05/14/execucao-ordenada-nas-triggers_oracle11g/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>A partir do Oracle 8i é possível criar mais de uma trigger do mesmo tipo na mesma tabela. Exemplo: duas triggers AFTER EACH ROW on INSERT. O tipo de trigger determina a ordem de execução: As BEFORE são executadas antes, e as AFTER depois. Contudo, como saber qual trigger executará primeiro quando se tem duas AFTER EACH ROW on INSERT ?<span id="more-95"></span><br />
A execução das triggers neste caso seria algo &#8220;randomico&#8221;, pois não havia uma forma de definir a ordem de execução.
<div id="ads_336x280"><script type="text/javascript"><!--
google_ad_client = "pub-8964513116661040";
google_alternate_color = "ffffFF";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
//2007-09-07: wp_quadrado_gra
google_ad_channel = "0247072216";
google_color_border = "FFFFFF";
google_color_bg = "FFFFff";
google_color_link = "4F82CB";
google_color_text = "000000";
google_color_url = "4F82CB";
//-->
</script><script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>No Oracle 11g, você pode adicionar uma cláusula que força a ordem de execução das triggers:</p>
<pre class="brush: sql;">create or replace trigger tr_pay_follow_up
before update
on payments
for each row
FOLLOWS TRIGGER_ANTERIOR
begin
... etc ...</pre>
<p>Neste caso a cláusula FOLLOWS força que a trigger seja disparada apenas após a trigger citada.</p>
]]></content:encoded>
			<wfw:commentRss>http://glufke.net/2009/05/14/execucao-ordenada-nas-triggers_oracle11g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

