Store Procedure - Repaso de SQL
From Ibbddunq
(Difference between revisions)
m |
m |
||
Line 1: | Line 1: | ||
+ | == Store Procedure == | ||
+ | |||
* Los parametros pueden ser IN,OUT,INOUT | * Los parametros pueden ser IN,OUT,INOUT | ||
* Los SP se llaman | * Los SP se llaman | ||
Line 16: | Line 18: | ||
END | END | ||
+ | |||
+ | |||
+ | == Funciones == | ||
*Los Parametros son siempre IN | *Los Parametros son siempre IN |
Current revision as of 20:44, 23 October 2009
Store Procedure
- Los parametros pueden ser IN,OUT,INOUT
- Los SP se llaman
- CALL AreaDeCirculo(22, @a);
- CALL AreaDeCirculo("Jabon", 50);
CREATE PROCEDURE `AreaDeCirculo` (IN nombreDeProducto varchar(45), IN stock varchar(45)) BEGIN insert into producto(nomProd,stock,fecha) values (nombreDeProducto, sctock, now()); END
CREATE PROCEDURE AreaDeCirculo( IN r double, OUT a double) BEGIN SET a = r * r * pi(); END
Funciones
- Los Parametros son siempre IN
- Select tieneMasStockQue("Jabon Ala","Jabon Skip");
FUNCTION `tieneMasStockQue` (nombreProducto varchar(45), nombreProducto2 varchar(45)) returns bool BEGIN declare cantidadDeStockProducto1 integer; declare cantidadDeStockProducto2 integer; select stock from producto where nomProd = nombreProducto into cantidadDeStockProducto1 ; select stock from producto where nomProd = nombreProducto2 into cantidadDeStockProducto2 ; return (cantidadDeStockProducto1 >= cantidadDeStockProducto2 ); END
FUNCTION `insertarValidandoCompra` (nombreDeProducto varchar(45), nombreDeCliente varchar(45),cantidad integer) returns integer BEGIN declare cantidadDeStockProducto integer; select stock from producto where nomProd = nombreProducto into cantidadDeStockProducto; if (stock >= cantidad) then insert into producto(nomProd,nomCliente,fecha,cant) values (nombreDeProducto, nomCliente, now(),stock -cantidad); return stock -cantidad; else insert into producto(nomProd,nomCliente,fecha,cant) values (nombreDeProducto, nomCliente, now(),0); return stock; end if; END