DeNunCianDo

DeNunCianDo (https://www.denunciando.com/)
-   Programacion (https://www.denunciando.com/programacion-115/)
-   -   Procedimientos almacenados en MySQL (https://www.denunciando.com/programacion-115/453609-procedimientos-almacenados-en-mysql.html)

ARICARRARO 17-05-2011 19:04:40

Procedimientos almacenados en MySQL
 
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!!!


La franja horaria es GMT -5. Ahora son las 07:22:10.

Desarrollado por: vBulletin® Versión 3.8.9
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.

DeNunCianDo.CoM ©

Page generated in 0,04040 seconds with 8 queries

SEO by vBSEO