Você está na página 1de 5

Tener una bitácora nos ayuda a tener un mejor control de nuestra información:

 ver quien hace cambios por “error”


 ver la fecha
 tipo de operación (inserción, actualización y/o borrado)

Bueno he aquí los pasos para crear una pequeña bitácora

1. Crear la base de datos

create database prueba1;


show databases;
use prueba1;

2. Crear una tabla llamadas personas

create table personas (id_persona int auto_increment primary key, nombre varchar (50),
apellido_p varchar (50), apellido_m varchar(50), edad int, peso double, talla double);

3. Crear un procedimiento almacenado para insertar registros

DELIMITER $$
DROP PROCEDURE IF EXISTS `prueba1`.`Insertar` $$
CREATE PROCEDURE `prueba1`.`Insertar`(in nombre varchar (50), apellido_p varchar (50),
apellido_m varchar(50), edad int, peso double, talla double)

BEGIN
INSERT INTO personas (nombre,apellido_p, apellido_m , edad , peso , talla) VALUES
(nombre,apellido_p, apellido_m , edad , peso , talla );

END $$

DELIMITER ;

4. Crear un procedimiento almacenado para actualizar registros

DELIMITER $$
DROP PROCEDURE IF EXISTS `prueba1`.`Actualizar` $$
CREATE PROCEDURE `prueba1`.`Actualizar` (in id_personax int,edadx int,pesox double)
BEGIN
update personas set edad=edadx,peso=pesox where id_persona=id_personax;
END $$

DELIMITER ;

5. Crear un procedimiento almacenado para eliminar registros

DELIMITER $$

DROP PROCEDURE IF EXISTS `prueba1`.`Borrar` $$


CREATE PROCEDURE `prueba1`.`Borrar` (in id int)
BEGIN
delete from personas where id_persona=id;
END $$

DELIMITER ;

6. Invocar los procedimientos almacenados

Call Insertar (‘Horacio’,’Gomez’,’Carmona’,25,65,1.68);


Call Insertar (‘Hugo’,’Torres’,’Mendez’,32,67,1.70);
Call Actualizar (1, 26, 66);
Call Borrar (2)

Ver registros

Select * from personas;

7. Crear un procedimiento almacenado que muestre todos los registros

DELIMITER $$

DROP PROCEDURE IF EXISTS `sp_verPersonas` $$


CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_verPersonas`()
select *from personas $$

DELIMITER ;

Para invocarlo
Call sp_verPersonas();

8. Crear tabla que lleve un control de quien hace cambios en la base de datos prueba1

CREATE TABLE infobase (usuario varchar (50), descripcion varchar (50)


fecha TIMESTAMP default now());

9. Crear trigger para la inserción

delimiter $$

create trigger tr_insercion


before insert on personas
for each row
begin
insert into infobase values(user(),’persona creada’,now());

end $$

10. Crear trigger para la actualización

delimiter $$

create trigger tr_actualizacion


befote update on personas
for each row
begin
insert into infobase values(user(),’persona modificada’,now());

end $$

11. Crear trigger para la eliminación

delimiter $$

create trigger tr_borrado


befote delete on personas
for each row
begin
insert into infobase values(user(),’persona eliminada’,now());

end $$

Ver cambios

Select *from infobase;

12. Crear procedimiento almacenado para ver un registro en particular

DELIMITER $$

DROP PROCEDURE IF EXISTS `sp_verPersona` $$


CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_verPersona`(in id_buscar int)
select *from personas where id_persona=id_buscar $$

DELIMITER ;

13. Ahora hacer una operación: calcular el I.M.C. (Índice de Masa Corporal) de las
personas registradas

Fórmula: peso/(talla*talla)

DELIMITER $$

DROP PROCEDURE IF EXISTS `sp_verImc` $$


CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_verImc`()
select id_persona,nombre,edad,peso,talla,peso/(talla*talla) from personas $$

DELIMITER ;

Crear trigger corregido sin error

delimiter $$

create trigger tr_actualizacion


before update on personas

for each row

begin

insert into infobase values(user(),'persona modificada',now());

end $$

persona eliminada

delimiter $$
create trigger tr_borrado before delete on personas
for each row
begin
insert into infobase values(user(),'persona eliminada',now());
end $$

DELIMITER $$

DROP PROCEDURE IF EXISTS `sp_verPersona` $$


CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_verPersona`(in id_buscar int)
select *from personas where id_persona=id_buscar $$

DELIMITER ;

Você também pode gostar