Como saber el numero de rows afectadas.

chuy
30 de Enero del 2006
Buen dia. Disculpen quisiera como saber el numero de rows afectadas despues de hacer ua consulta.
Por ejemplo.
mysql->create procedure mod_info(OUT Id int, Info varchar(50))
->begin
->update proyectos set descricpcion=\'Info\' where Id_proyecto=\'Id\';
**** Bueno aqui quisiera saber cuantas rows se afectaron para poner un if, si el numero de rows afectadas > a 5, que se guarde en otra tabla este dato o no se

Chuy
30 de Enero del 2006
ajaj, encontre una solucion para encontrar las rows afectadas aqui se los pngo por si alguien lo necesita;
mysql> create procedure prueba()
-> begin
-> declare n int;
-> select Id_Persona, Persona from Personas Where Id_Departamento='1';
-> select count(Id_Persona) into n from Personas where Id_Departamento='1';
-> select * from Personas where Id_Persona=n;
-> end//
Query OK, 0 rows affected (0.00 sec)

mysql> call prueba()//
+------------+---------+
| Id_Persona | Persona |
+------------+---------+
| 1 | chuy |
| 2 | chuy2 |
+------------+---------+
2 rows in set (0.01 sec)

+------------+---------+-----------------+-----------+--------+
| Id_Persona | Persona | Id_Departamento | PersonaId | Cuenta |
+------------+---------+-----------------+-----------+--------+
| 2 | chuy2 | 1 | 2 | 200 |
+------------+---------+-----------------+-----------+--------+
1 row in set (0.01 sec)

Query OK, 0 rows affected (0.03 sec)

************
Pero ahora tengo otro problema, ya que la sintaxis del if dentro de los SP's, no me la se muy bien, ya busque y pues segun esto es; IF <cond> THEN <instr> END IF, pero me marca error, miren;
mysql> create procedure prueba()
-> begin
-> declare n int;
-> select Id_Persona, Persona from Personas Where Id_Departamento='1';
-> select count(Id_Persona) into n from Personas where Id_Departamento='1';
-> if n > 0 then
-> select * from Personas where Id_Persona='n';
-> end
-> end//
ERROR 1064 (42000): You have an error in your SQL syntax. Check the manual that
corresponds to your MySQL server version for the right syntax to use near 'end'
at line 9
****
Ojala k alguien me pueda ayudar, GRACIAS :D

cq
30 de Enero del 2006
yo tenia ese problema y lo que hice es meter mis procedimientos en una archivo

*******************Archivo "procedimientos.sql"************************

use mysql;


/***** Procedimiento1*****/
delimiter //
CREATE PROCEDURE FechaASC()
BEGIN
SELECT Fecha, Ip_Origen, Nombre_ext, Tamanio FROM remitente ORDER BY Fecha;
END //
delimiter ;



/***** Procedimiento2 *****/

delimiter //
CREATE PROCEDURE FechaDES()
BEGIN
SELECT Fecha, Ip_Origen, Nombre_ext, Tamanio FROM remitente ORDER BY Fecha DESC;
END//
delimiter ;


***************************************************************
despues desde el MS-DOS en c:\mysql\bin>mysql -uroot -ppassword < procedimientos.sql



y LISTO!!!



considerando que tengo instalala la version liberada de MySQL


chuy
30 de Enero del 2006
Hey porfavor ayudenme, jejejjej no he encontrado nada, quiero saber una instruccion parecida a @@Rowcount (MS SQL Server), pero para MySQL