<?xml version="1.0" encoding="ISO-8859-1"?>
<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>Linux, PHP, MySQL, Windows, C# &#187; automatizzazione processi</title>
	<atom:link href="http://www.massimo-caselli.com/tag/automatizzazione-processi/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.massimo-caselli.com</link>
	<description>Articoli, news e pillole sul mondo LAMP e l&#039;opensource. Pillole di C#</description>
	<lastBuildDate>Sun, 27 Jun 2010 11:25:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>MySQL 5, utilizzo dei TRIGGER</title>
		<link>http://www.massimo-caselli.com/2008/07/11/mysql-5-utilizzo-dei-trigger/</link>
		<comments>http://www.massimo-caselli.com/2008/07/11/mysql-5-utilizzo-dei-trigger/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 18:18:58 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[MySQL, DB Server]]></category>
		<category><![CDATA[Opensource World]]></category>
		<category><![CDATA[automatizzazione processi]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[db server]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[trigger]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=130</guid>
		<description><![CDATA[Finalmente trovo il tempo di pubblicare un articolo&#8230; Vediamo di seguito l&#8217;utilizzo dei TRIGGER in mysql 5, se non dico male infatti sino alla versione 5.0.x i TRIGGER su mysql non erano disponibili. Prima di tutto, a cosa servono i TRIGGER? I TRIGGER hanno il principale scopo di automatizzare determinate operazioni sul database all&#8217;occorrenza di]]></description>
			<content:encoded><![CDATA[<p>Finalmente trovo il tempo di pubblicare un articolo&#8230; <img src='http://www.massimo-caselli.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Vediamo di seguito l&#8217;utilizzo dei <strong><a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a> in <a target="_blank" href="http://www.mysql.com">mysql</a> 5</strong>, se non dico male infatti sino alla versione 5.0.x i <a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a> su <a target="_blank" href="http://www.mysql.com">mysql</a> non erano disponibili.</p>
<p>Prima di tutto, a cosa servono i <a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a>? I <a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a> hanno il principale scopo di <strong>automatizzare determinate operazioni sul database</strong> all&#8217;occorrenza di determinati eventi come <strong>INSERT, UPDATE o DELETE</strong>.</p>
<p>Il modo con cui creare un <a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a> è piuttosto semplice:</p>
<p><em>CREATE <a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a> setnoprice BEFORE UPDATE ON prodotto<br />
FOR EACH ROW<br />
BEGIN<br />
IF NEW.online = &#8216;no&#8217; THEN<br />
SET NEW.prezzo = 0;<br />
END IF;<br />
END</em></p>
<p>Analizziamo cosa fa di fatto questo <a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a>, al di là della sintassi:</p>
<p>Ipotizziamo di avere ad esempio un sito di e-commerce dal quale i prodotti sono acquistabili esclusivamente quando il loro prezzo è maggiore di zero, mentre sono online altri prodotti per il quale esiste una presentazione ma l&#8217;acquisto può essere fatto contattando l&#8217;ufficio commerciale e non viene esposto il prezzo.</p>
<p>Conseguentemente quando un prodotto va offline è automatico che non sia più vendibile. La soluzione più classica e semplice (apparentemente) è quella di gestire l&#8217;operazione direttamente da backoffice dell&#8217;applicativo in modo automatico o peggio ancora di delegare al gestore del backoffice il fatto di resettare a zero il prezzo quando un prodotto va offline.</p>
<p>[Piccolo inciso, so benissimo che potrebbe essere bloccato l'acquisto oltre che per prezzo a zero anche nel caso il flag online sia off, così come so che il prodotto non sarebbe nemmeno visualizzato, ma un'esempio lo dovevo fare... <img src='http://www.massimo-caselli.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> ]</p>
<p>Entrando nel dettaglio <a target="_blank" href="http://www.mysql.com">mysql</a> applicando questo <a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a> si preoccupa di eseguire <strong>PRIMA [BEFORE]</strong> dell&#8217;azione <strong>UPDATE [solo update quindi]</strong> la verifica se <strong>online diventerà uguale a off e in tal caso forza il nuovo valore di prezzo a zero.</strong></p>
<p>In sostanza il <a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a> va a <strong>sostituire quelle operazioni automatiche che normalmente vengono delegate all&#8217;applicativo</strong>.</p>
<p>Per maggiori informazioni potete consultare direttamente il manuale di <a target="_blank" href="http://www.mysql.com">mysql</a> alla pagina relativa ai <a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/triggers.html">TRIGGER</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2008/07/11/mysql-5-utilizzo-dei-trigger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
