Procedimientos almacenados en Mysql

Bueno , retomando la programacion de Rp-basic , que es un sistema de registro de pacientes el cual de a poco estoy realizando , me surgió el tema de empezar a trabajar con procedimientos almacenados, para realizar los insert y update de la base de datos y de esta manera ir parendiendo como utilizarlos .

Los procedimientos almacenados pueden devolver valores calculados , tablas , o nada ,
ademas pueden hacerse bucles repetitivos , declararse variables para trabajar dentro , verificaciones , etc ..

con esto que les quiero decir , que el ejemplo que doy aca es muy pavo .. que el poder de los procedimientos almacenados es mucho mayor de lo que se ve acá , podemos hacer en definitiva q casi toda la lógica de nuestra aplicación en lo que refiere a la carga de datos y calculos derivadoos de estos se realicen en la base de datos .

mas adelante voy a subir un ejemplo de como se llama a un procedimiento almacenado desde visual estudio.

vamos con el ejemplo a crear un procedimiento almacenado que realiza un insert en una tabla.


Trabajo con xampp -> phpmyadmin

Los procediminetos almacenados en phpmyadmin son llamados rutinas .. asi que crearemos una nueva rutina para realizar un insert .

Base de datos "rp"

La tabla : pacientes.


 

vamos a la extructura de la base de datos y en el menu aparecera uno llamado rutina y vamos a crear una nueva rutina.




Usando el asistente quedaria algo asi :


EL codigo generado por phpmyadmin :


 DROP PROCEDURE `pacientesl_ins`;
CREATE DEFINER=`root`@`localhost`
 PROCEDURE `pacientesl_ins`
(
IN `@apellido` VARCHAR(50),
IN `@nombre` VARCHAR(50),
IN `@nroHC` VARCHAR(50),
IN `@nroDoc` VARCHAR(50),
IN `@idsexo` VARCHAR(5),
 IN `@direccion` VARCHAR(50),
IN `@tel` VARCHAR(50),
IN `@idObra` INT
)
NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER

INSERT into papcientes
(Apellido,Nombres,nrHC,nroDoc,fk_idSexo,Direccion,Telefono,fk_idObraSocial)
values
(@apellido,@nombre,@nroHC,@nroDoc,@idsexo,@direccion,@tel,@idObra)

 Bueno , ahoa si seleccionamos la base de dattos y vamos al apartadó de rutinas nos aparecera el nombre de la rutina creada , podremos editarla , ejecutarla , exportarla y eliminarla .  : 

Ejecucion ejemplo :



 o por código :

seria algo asi como :

call pacientesl_ins('valro','valor2';'valor3';'valor4')