Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2011, 08:57
Avatar de ARICARRARO
ARICARRARO
 
Fecha de Ingreso: diciembre-2010
Ubicación: México
Mensajes: 227
Antigüedad: 13 años, 3 meses
Puntos: 10
Ejemplos de procedimientos almacenados en MySQL

Algunos ejemplos para entender los procedimientos almacenados

Código MySQL:
Ver original
  1. //Sentencias DDL
  2. use Agenda;
  3. create table Agenda.contactos(nombre varchar(45),telefono varchar(12),email varchar(50),id_contacto int primary key)TYPE=MyISAM; //se puede usar también InnoDB
  4.  
  5. //Sentencias DML
  6. insert into Agenda.contactos values ('Almino','7221312567','[email protected]',1),('Anita','7227843213','[email protected]',2);
  7. select *from Agenda.contactos;
  8. update Agenda.contactos set nombre='AlmaGato',telefono='7221312456' where id_contacto=1;
  9. delete *from Agenda.contactos where nombre='Anita';
  10.  
  11.  
  12. //Insertar
  13. DELIMITER $$
  14. DROP PROCEDURE IF EXIST `agenda`.`Insertar`$$
  15. CREATE PROCEDURE `agenda`.`Insertar`(in nombre varchar(45), telefono varchar(12), email varchar(50), id_contacto int primary key)
  16. /*DECLARE nombre varchar(45)*/
  17. INSERT INTO contactos VALUES (nombre,telefono,email,id_contacto);
  18. END $$
  19. DELIMITER ;
  20.  
  21. //Borrar
  22. DELIMITER $$
  23. DROP PROCEDURE IF EXIST `agenda`.`Borrar`$$
  24. CREATE PROCEDURE `agenda`.`Borrar`(in ident integer)
  25.    DELETE FROM contactos id_contacto=ident;
  26. END $$
  27. DELIMITER ;
  28.  
  29. //Actualizar
  30. DELIMITER $$
  31. DROP PROCEDURE IF EXIST `agenda`.`Actualizar`$$
  32. CREATE PROCEDURE `agenda`.`Actualizar`(in ident integer,ntelefono varchar(12))
  33. UPDATE contactos SET telefono=ntelefono WHERE id_contacto=ident;
  34. END $$
  35. DELIMITER ;
  36.  
  37. //Para invocar
  38. CALL Insertar('Fernando Carraro Aguirre','7221312686','[email protected]',1);
  39. select *from Agenda.contactos;
  40.  
  41. CALL Borrar(1);
  42. select *from Agenda.contactos;
  43.  
  44. CALL Actualizar(1,'7221312453');
  45. select *from Agenda.contactos;
  46.  
  47. //más ejemplos
  48. DELIMITER $$
  49. DROP PROCEDURE IF EXIST `agenda`.`tipoUsuarios`$$
  50. CREATE PROCEDURE `agenda`.`tipoUsuarios`(in no_cta integer)
  51. DECLARE tipoUsuario char(15);
  52.  
  53.  IF no_cta=17 THEN
  54.    SET tipoUsuario='Admin';
  55.     SET tipoUsuario='Invitado';
  56.  END IF;
  57.  
  58. INSERT INTO usuarios(tipoUsuario);
  59. END $$
  60. DELIMITER ;
  61.  
  62. //Invocar
  63. CALL tipoUsuarios(12);//resultado='Invitado'
  64. CALL tipoUsuarios(17);//resultado='Admin'

Última edición por gnzsoloyo; 22/07/2013 a las 14:53