miércoles, 29 de mayo de 2013

Practica 11

Practica 11: Manejo de disparadores mediante criterios de selección
1.    Verifica que el equipo de cómputo se encuentra conectado
2.    Enciende el equipo de computo
3.    Abre sesión en ambiente grafico
4.    Ingresa al sistema gestor de bases de datos
5.    Selecciona la base de datos biblioteca
6.    Crea un disparador en la base de datos biblioteca el cual se ejecute cuando el usuario intente eliminar un usuario que tenga préstamos de ejemplares pendientes de devolver.
7.    Elimina el disparador de la base de datos creada.
8.    Guarda el archivo que contiene las sentencias SQL elaboradas
9.    Ejecuta el archivo que contienen las sentencias SQL elaboradas
10. Imprime instrucciones SQL elaboradas


mysql> create database biblioteca;
Query OK, 1 row affected (0.00 sec)

mysql> use biblioteca;
mysql> create table autor(codigo int not null auto_increment primary key,nombre varchar(30));
mysql> describe autor;
mysql> create table libros(codigo int not null auto_increment primary key,titulo varchar(30),ISBN varchar(30),editorial varchar(30),num_paginas int);
mysql> describe libros;
mysql> create table usuarios(codigo_ejemplar int not null auto_increment primary key,localizacion varchar(30));
mysql> create table ejemplares(codigo_ejemplar int not null auto_increment primary key,localizacion varchar(30));
mysql> describe ejemplares;
mysql> create table usuarios(codigo_usuario int not null auto_increment primary key,nombre varchar(30),direccion varchar(50),telefono varchar(30),codigo_ejemplar int);
mysql> insert into usuarios(nombre,direccion,telefono,codigo_ejemplar) values('nancy','ave signos 23','53221
234',3),('pedro','calle tulipanes','54321234',4),('amanda','ave. constelacion','56432345',5);
mysql> select * from usuarios;
mysql> create table copia_usuario(codigo int not null auto_increment primary key,nombre_ant varchar(30),direccion_anterior varchar(50),telefono_anterior varchar(50),codigo_ejemplar_anterior int,nombre_nuevo varchar(30),direccion_nueva varchar(50),telefono_nuevo varchar(30),codigo_ejemplar_nuevo int,usuario varchar(40),modificado datetime,codigo_usuario int(4));
mysql> describe copia_usuario;
mysql> create trigger elimina_usuarios_ejemplares after delete on usuarios for each row
-> begin
-> insert into copia_usuario(nombre_ant,direccion_anterior,telefono_anterior,codigo_ejemplar_anterior,usuario,modificado,codigo_usuario)values(OLD.nombre,OLD.direccion,OLD.telefono,OLD.codigo_ejemplar,CURRENT_USER
(),NOW(),OLD.codigo_usuario);
-> End;
-> //
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;
mysql> select * from usuarios;
mysql> delete from usuarios where codigo_ejemplar=4;
mysql> select * from usuarios;
mysql> select * from copia_usuario;











No hay comentarios:

Publicar un comentario