PDA

Ver la Versión Completa Con Imagenes : Procedimientos almacenados en MySQL


Ayudante De Santa
06-11-2015, 22:19:08
Los mejores licores
ARICARRARO
17-05-2011, 19:04:40
Dejo aqui unos ejemplos de procedimientos almacenados en MySQL

//Sentencias DDL
create database Agenda;
use Agenda;
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

//Sentencias DML
insert into Agenda.contactos values ('Almino','7221312567','[email protected]',1),('Anita' ,'7227843213','[email protected]',2);
select *from Agenda.contactos;
update Agenda.contactos set nombre='AlmaGato',telefono='7221312456' where id_contacto=1;
delete *from Agenda.contactos where nombre='Anita';


//Insertar
DELIMITER $$
DROP PROCEDURE IF EXIST `agenda`.`Insertar`$$
CREATE PROCEDURE `agenda`.`Insertar`(in nombre varchar(45), telefono varchar(12), email varchar(50), id_contacto int primary key)
BEGIN
/*DECLARE nombre varchar(45)*/
INSERT INTO contactos VALUES (nombre,telefono,email,id_contacto);
END $$
DELIMITER ;

//Borrar
DELIMITER $$
DROP PROCEDURE IF EXIST `agenda`.`Borrar`$$
CREATE PROCEDURE `agenda`.`Borrar`(in ident integer)
BEGIN
DELETE FROM contactos id_contacto=ident;
END $$
DELIMITER ;

//Actualizar
DELIMITER $$
DROP PROCEDURE IF EXIST `agenda`.`Actualizar`$$
CREATE PROCEDURE `agenda`.`Actualizar`(in ident integer,ntelefono varchar(12))
BEGIN
UPDATE contactos SET telefono=ntelefono WHERE id_contacto=ident;
END $$
DELIMITER ;

//Para invocar
CALL Insertar('Fernando Carraro Aguirre','7221312686','[email protected]',1);
select *from Agenda.contactos;

CALL Borrar(1);
select *from Agenda.contactos;

CALL Actualizar(1,'7221312453');
select *from Agenda.contactos;

//más ejemplos
DELIMITER $$
DROP PROCEDURE IF EXIST `agenda`.`tipoUsuarios`$$
CREATE PROCEDURE `agenda`.`tipoUsuarios`(in no_cta integer)
BEGIN
DECLARE tipoUsuario char(15);

IF no_cta=17 THEN
SET tipoUsuario='Admin';
ELSE
SET tipoUsuario='Invitado';
END IF;

INSERT INTO usuarios(tipoUsuario);
END $$
DELIMITER ;

//Invocar
CALL tipoUsuarios(12);//resultado='Invitado'
CALL tipoUsuarios(17);//resultado='Admin'

Si funcionan!!!