<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comentarios en: COMMIT de transacciones en MySQL</title>
	<atom:link href="http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/</link>
	<description>Sistemas Operativos, Bases de Datos, Programación y Redes</description>
	<lastBuildDate>Mon, 21 May 2012 15:14:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>Por: Juan Carlos</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-18869</link>
		<dc:creator>Juan Carlos</dc:creator>
		<pubDate>Sun, 13 May 2012 03:58:06 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-18869</guid>
		<description>Estos ejemplos estan muy buenos, pero el resultado de ejecutar estos procedimientos almacenados es que siempre me regresa el primer select, y yo quiero que me regrese un select que ejecuto despues del update o del insert, en MS SQL la funcion que se usa es la SET NOCOUNT ON para deshabilitar el resultado de la consulta y cuando ya se desea regresar el resultado de alguna instruccion se pone SET NOCOUNT OFF, como se hace esto en MySql?</description>
		<content:encoded><![CDATA[<p>Estos ejemplos estan muy buenos, pero el resultado de ejecutar estos procedimientos almacenados es que siempre me regresa el primer select, y yo quiero que me regrese un select que ejecuto despues del update o del insert, en MS SQL la funcion que se usa es la SET NOCOUNT ON para deshabilitar el resultado de la consulta y cuando ya se desea regresar el resultado de alguna instruccion se pone SET NOCOUNT OFF, como se hace esto en MySql?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Hugo</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-18447</link>
		<dc:creator>Hugo</dc:creator>
		<pubDate>Thu, 19 Apr 2012 04:57:52 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-18447</guid>
		<description>hola  quisiera saber si me pueden orientar de como se realiza una transaccion que inserte un registro en una tabla que sellama boleta pero siempre y cuando el numero de control de una alumno exista</description>
		<content:encoded><![CDATA[<p>hola  quisiera saber si me pueden orientar de como se realiza una transaccion que inserte un registro en una tabla que sellama boleta pero siempre y cuando el numero de control de una alumno exista</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Jhoneu</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-16956</link>
		<dc:creator>Jhoneu</dc:creator>
		<pubDate>Fri, 27 Jan 2012 01:57:14 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-16956</guid>
		<description>Exacto lo que queremos es como se reconoce para la ejecucion del rollback,o el commit.
Ya sabemos q es lo que pasa cuando se usa.
en q circunstancias se ejecuta porque no vemos la falla del procedimineto pero debe estar el rolback y cuando correcto de forma automatica ejecutarse el comint.</description>
		<content:encoded><![CDATA[<p>Exacto lo que queremos es como se reconoce para la ejecucion del rollback,o el commit.<br />
Ya sabemos q es lo que pasa cuando se usa.<br />
en q circunstancias se ejecuta porque no vemos la falla del procedimineto pero debe estar el rolback y cuando correcto de forma automatica ejecutarse el comint.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: kingc</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-15351</link>
		<dc:creator>kingc</dc:creator>
		<pubDate>Sat, 12 Nov 2011 15:32:29 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-15351</guid>
		<description>hola que tal ...me parece interesante pero en muy basico... seria bueno que publiques sobre transacccion con manejos de errores y el uso del rollback en estos casos...
saludos cordiales...</description>
		<content:encoded><![CDATA[<p>hola que tal &#8230;me parece interesante pero en muy basico&#8230; seria bueno que publiques sobre transacccion con manejos de errores y el uso del rollback en estos casos&#8230;<br />
saludos cordiales&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Bonita</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-13232</link>
		<dc:creator>Bonita</dc:creator>
		<pubDate>Wed, 13 Jul 2011 22:25:37 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-13232</guid>
		<description>Hola! Realice el sig Procedimiento,ingreso datos  donde falla la segunda sentencia de insert, lo que quiero saber es como hacer para que se regresen los datos como estaban de la primera sentencia si la segunda falla...

PROCEDURE `Registra`(IN `NOMBRE` varchar(150),IN `DOM` varchar(150),IN `EST` int (2),IN `MUN` int(2),IN `INST` int(2),
IN `FECHA` varchar(100),IN `TEL` varchar(30),IN FAX varchar(25),IN `CORREO`  varchar(30),IN `ESTATUS` int(2), IN `OBSERVA` varchar(250))
BEGIN
SET AUTOCOMMIT = 0;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
SELECT  @S:= MAX(USUARIO)  FROM USUARIOS  ;
SELECT @SO:= SUBSTRING(@S,CHARACTER_LENGTH(@S)-2,CHARACTER_LENGTH(@S)) + 1 ;
SELECT @NVOCBE:= IF(CHARACTER_LENGTH(@SO)+2 =4,CONCAT (&#039;TV&#039;,&#039;0&#039;,@SO),CONCAT(&#039;TV&#039;,@SO)) ;
SELECT @NVOPASS:= IF(CHARACTER_LENGTH(@SO)+2 =4,CONCAT (&#039;tele&#039;,&#039;0&#039;,@SO),CONCAT(&#039;tele&#039;,@SO))   ;
INSERT INTO USUARIOS VALUES (0,NOMBRE,@NVOCBE,@NVOPASS,ESTATUS,3);
sELECT @IDUSER:=IDUSUARIO  FROM USUARIOS WHERE USUARIO = @NVOCBE;
INSERT INTO TELEAULAS VALUES(@IDUSER,DOM,EST,MUN ,INST,FECHA,TEL,FAX,CORREO,OBSERVA);
COMMIT;
END;</description>
		<content:encoded><![CDATA[<p>Hola! Realice el sig Procedimiento,ingreso datos  donde falla la segunda sentencia de insert, lo que quiero saber es como hacer para que se regresen los datos como estaban de la primera sentencia si la segunda falla&#8230;</p>
<p>PROCEDURE `Registra`(IN `NOMBRE` varchar(150),IN `DOM` varchar(150),IN `EST` int (2),IN `MUN` int(2),IN `INST` int(2),<br />
IN `FECHA` varchar(100),IN `TEL` varchar(30),IN FAX varchar(25),IN `CORREO`  varchar(30),IN `ESTATUS` int(2), IN `OBSERVA` varchar(250))<br />
BEGIN<br />
SET AUTOCOMMIT = 0;<br />
START TRANSACTION WITH CONSISTENT SNAPSHOT;<br />
SELECT  @S:= MAX(USUARIO)  FROM USUARIOS  ;<br />
SELECT @SO:= SUBSTRING(@S,CHARACTER_LENGTH(@S)-2,CHARACTER_LENGTH(@S)) + 1 ;<br />
SELECT @NVOCBE:= IF(CHARACTER_LENGTH(@SO)+2 =4,CONCAT (&#8216;TV&#8217;,&#8217;0&#8242;,@SO),CONCAT(&#8216;TV&#8217;,@SO)) ;<br />
SELECT @NVOPASS:= IF(CHARACTER_LENGTH(@SO)+2 =4,CONCAT (&#8216;tele&#8217;,&#8217;0&#8242;,@SO),CONCAT(&#8216;tele&#8217;,@SO))   ;<br />
INSERT INTO USUARIOS VALUES (0,NOMBRE,@NVOCBE,@NVOPASS,ESTATUS,3);<br />
sELECT @IDUSER:=IDUSUARIO  FROM USUARIOS WHERE USUARIO = @NVOCBE;<br />
INSERT INTO TELEAULAS VALUES(@IDUSER,DOM,EST,MUN ,INST,FECHA,TEL,FAX,CORREO,OBSERVA);<br />
COMMIT;<br />
END;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Jeremias</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-12721</link>
		<dc:creator>Jeremias</dc:creator>
		<pubDate>Tue, 07 Jun 2011 13:51:57 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-12721</guid>
		<description>Hola a todos. en respuesta a las últimas preguntas: que ocurra un error en el query ejecutado dentro de la transaccion, no implica que la base de datos quedó inactiva o que ya no podrás ejecutar ningún query, sino que, sólo ese query resultó fallido por un motivo que se desconoce desde afuera del motor de BD. Por lo cual:
1) inciar transaccion.
2) ejecutar querys que modifican la base. (insert, delete y update)
3) controlar el resultado de los querys:
     3) = OK =&gt; ejecutar commit
     3) = FAIL =&gt; ejecutar rollback

espero que les sirva.
un saludo a todos.</description>
		<content:encoded><![CDATA[<p>Hola a todos. en respuesta a las últimas preguntas: que ocurra un error en el query ejecutado dentro de la transaccion, no implica que la base de datos quedó inactiva o que ya no podrás ejecutar ningún query, sino que, sólo ese query resultó fallido por un motivo que se desconoce desde afuera del motor de BD. Por lo cual:<br />
1) inciar transaccion.<br />
2) ejecutar querys que modifican la base. (insert, delete y update)<br />
3) controlar el resultado de los querys:<br />
     3) = OK =&gt; ejecutar commit<br />
     3) = FAIL =&gt; ejecutar rollback</p>
<p>espero que les sirva.<br />
un saludo a todos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Sergio</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-11887</link>
		<dc:creator>Sergio</dc:creator>
		<pubDate>Wed, 13 Apr 2011 12:55:53 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-11887</guid>
		<description>Al igual que wa, tengo la duda de cómo hacer el rollback en caso de error. Muchas gracias.</description>
		<content:encoded><![CDATA[<p>Al igual que wa, tengo la duda de cómo hacer el rollback en caso de error. Muchas gracias.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: wa</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-11726</link>
		<dc:creator>wa</dc:creator>
		<pubDate>Mon, 04 Apr 2011 20:57:04 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-11726</guid>
		<description>opino lo mismo que anRoswell, si se ocurriese algun error, como hago el rollback??</description>
		<content:encoded><![CDATA[<p>opino lo mismo que anRoswell, si se ocurriese algun error, como hago el rollback??</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: anRoswell</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-9974</link>
		<dc:creator>anRoswell</dc:creator>
		<pubDate>Sat, 04 Dec 2010 16:44:32 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-9974</guid>
		<description>Aportando un poco mas a la pregunta de noe a pesar de q lleva mas de 1 años, el rollback se colocaria en alguna instruccion en caso de q se produsca algun error, por ejemplo puedes hacer varios insert y en alguno de los query sea errado se produsca un error, entonces seria convenienete ejecutar un rollback para cancelar todos los insert, 

Bueno se q no soy bueno explicando pero espero me entiendan ;-)</description>
		<content:encoded><![CDATA[<p>Aportando un poco mas a la pregunta de noe a pesar de q lleva mas de 1 años, el rollback se colocaria en alguna instruccion en caso de q se produsca algun error, por ejemplo puedes hacer varios insert y en alguno de los query sea errado se produsca un error, entonces seria convenienete ejecutar un rollback para cancelar todos los insert, </p>
<p>Bueno se q no soy bueno explicando pero espero me entiendan <img src='http://luauf.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Guillermo</title>
		<link>http://luauf.com/2008/10/13/commit-de-transacciones-en-mysql/comment-page-1/#comment-5954</link>
		<dc:creator>Guillermo</dc:creator>
		<pubDate>Sat, 12 Dec 2009 20:12:41 +0000</pubDate>
		<guid isPermaLink="false">http://luauf.com/?p=692#comment-5954</guid>
		<description>repondiendo a noe Romeo:

usando el ejemplo del amigo de arriba.

START TRANSACTION;
SELECT @A:=PRESUPUESTO FROM departamentos_externos WHERE codigo=11;
UPDATE departamentos SET PRESUPUESTO = PRESUPUESTO + @A WHERE codigo=33;
INSERT INTO departamentos_externos(RESUPUESTO) VALUES(&#039;valor&#039;) WHERE codigo=11;

COMMIT; // para aceptar la transaccion
ó
ROLLBACK;//si quieres cancelar la transaccion

Nota: una ves q has realizado una o varias consultas (SELECT,UPDATE; DELETE,INSERT...) tienes dos opciones, aceptar la transaccion, o cancelar la transaccion, para aceptar la transaccion y los datos sean ingresados, actualizados, borrados( depende la sentencia que ayas usado) a la base de datos, utilizas COMMIT.
Para cancelar la transaccion (osea cancelar todas las sentencias realizadas) utilizas ROLLBACK.

una ves utilizada la sentencia COMMIT ya no puedes usar ROLLBACK.

espero me haya dado a entender...</description>
		<content:encoded><![CDATA[<p>repondiendo a noe Romeo:</p>
<p>usando el ejemplo del amigo de arriba.</p>
<p>START TRANSACTION;<br />
SELECT @A:=PRESUPUESTO FROM departamentos_externos WHERE codigo=11;<br />
UPDATE departamentos SET PRESUPUESTO = PRESUPUESTO + @A WHERE codigo=33;<br />
INSERT INTO departamentos_externos(RESUPUESTO) VALUES(&#8216;valor&#8217;) WHERE codigo=11;</p>
<p>COMMIT; // para aceptar la transaccion<br />
ó<br />
ROLLBACK;//si quieres cancelar la transaccion</p>
<p>Nota: una ves q has realizado una o varias consultas (SELECT,UPDATE; DELETE,INSERT&#8230;) tienes dos opciones, aceptar la transaccion, o cancelar la transaccion, para aceptar la transaccion y los datos sean ingresados, actualizados, borrados( depende la sentencia que ayas usado) a la base de datos, utilizas COMMIT.<br />
Para cancelar la transaccion (osea cancelar todas las sentencias realizadas) utilizas ROLLBACK.</p>
<p>una ves utilizada la sentencia COMMIT ya no puedes usar ROLLBACK.</p>
<p>espero me haya dado a entender&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

