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