Como saber el numero de rows afectadas.
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
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
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
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
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
*******************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
