Store Procedure - Repaso de SQL

From Ibbddunq

(Difference between revisions)
m
 
(3 intermediate revisions not shown)
Line 1: Line 1:
 +
== Store Procedure ==
-
  FUNCTION `insertarValores` (nombreDeProducto varchar(45), stock varchar(45))
+
* 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
  BEGIN
   insert into producto(nomProd,stock,fecha) values
   insert into producto(nomProd,stock,fecha) values
Line 6: Line 12:
  END   
  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");
Line 17: Line 35:
   select stock from producto where nomProd = nombreProducto2 into cantidadDeStockProducto2 ;
   select stock from producto where nomProd = nombreProducto2 into cantidadDeStockProducto2 ;
   
   
-
    return  (cantidadDeStockProducto1 >= cantidadDeStockProducto2 );
+
  return  (cantidadDeStockProducto1 >= cantidadDeStockProducto2 );
-
+
  END   
  END   
-
FUNCTION `insertarValidandoCompra` (nombreDeProducto varchar(45), nombreDeCliente varchar(45),cantidad integer)
+
 
 +
FUNCTION `insertarValidandoCompra` (nombreDeProducto varchar(45), nombreDeCliente varchar(45),cantidad integer)
  returns integer
  returns integer
  BEGIN
  BEGIN
-
 
   declare cantidadDeStockProducto integer;
   declare cantidadDeStockProducto integer;
-
 
   select stock from producto where nomProd = nombreProducto into cantidadDeStockProducto;
   select stock from producto where nomProd = nombreProducto into cantidadDeStockProducto;
-
 
   if (stock >= cantidad) then
   if (stock >= cantidad) then
     insert into producto(nomProd,nomCliente,fecha,cant) values
     insert into producto(nomProd,nomCliente,fecha,cant) values

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
Personal tools