Procedimientos almacenados en MySql
Posted by admin | Posted in MySql, Programación | Posted on 21-10-2007
0
Una de las cosas que no me gustaba de MySql era que no soportaba procedimientos almacenados, lo bueno es que desde la version 5.0 soporta, lo malo es que no hay mucha documentación al respecto.
Tengo bastante experiencia con los susodichos pero en MS SQL, por lo que me es inevitable hacer la comparación.
Por ejemplo si tenemos dos tablas, una empresas y otra giro.
CREATE TABLE `empresas` (
`empresa_emp` int(11) NOT NULL auto_increment,
`nombrefantasia_emp` varchar(100) NOT NULL,
`razonsocial_emp` varchar(100) default NULL,
`sitioweb_emp` varchar(50) NOT NULL,
`giro_gir` int(11) NOT NULL,
PRIMARY KEY (`empresa_emp`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
CREATE TABLE `giro` (
`giro_gir` int(11) NOT NULL auto_increment,
`nombre_gir` varchar(50) NOT NULL,
PRIMARY KEY (`giro_gir`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
Un procedimiento que me devuelva las empresas con un mismo giro en MS SQL serÃÂa:
CREATE PROCEDURE pa_emp_empresasporgiro
(
@giro int
)
AS
SELECT *
FROM empresas
WHERE giro=@giro
en MySql serÃÂa de esta forma:
CREATE PROCEDURE pa_emp_empresasporgiro(IN giro INT)
BEGIN
SELECT *
FROM empresas
WHERE giro_gir=giro;
END;













