<?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>Wed, 30 Nov 2011 17:41:41 +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[<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>

