miércoles, 29 de mayo de 2013

Manejo de disparadores con criterios de selección



Enter password: ***
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

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

mysql> use biblioteca;
Database changed
mysql> create table autor(codigo int not null auto_increment primary key,nombre varchar(30));
Query OK, 0 rows affected (0.16 sec)

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);
Query OK, 0 rows affected (0.90 sec)

mysql> describe libros;


mysql> create table usuarios(codigo_usuario int not null auto_increment primary key,nombre varchar(30),direccion varchar(50),telefono varchar(30),codigo_ejemplar in
Query OK, 0 rows affected (0.19 sec)

mysql> describe usuarios;


mysql> create table ejemplares(codigo_ejemplar int not null auto_increment primary key,localizacion varchar(30));
Query OK, 0 rows affected (0.19 sec)

mysql> describe ejemplares;


mysql> insert into usuarios(nombre,direccion,telefono,codigo_ejemplar) values('migel','ave signos 23','53221234',3),('pedro','calle tulipanes','54321234',4),('amandve. constelacion','56432345',5);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

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)
go_ejemplar_anterior int,nombre_nuevo varchar(30),direccion_nueva varchar(50),telefono_nuevo varchar(30),codigo_ejemplar_nuevo int,usuario varchar(40),modificado da
e,codigo_usuario int(4));
Query OK, 0 rows affected (0.18 sec)

mysql> describe copia_usuario;



mysql> delimiter //
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.d
ireccion,OLD.telefono,OLD.codigo_ejemplar,current_user(),now(),OLD.codigo_usuario);
    -> end //
Query OK, 0 rows affected (1.25 sec)

mysql> select * from usuarios//


mysql> delete from usuarios where codigo_ejemplar=4//
Query OK, 1 row affected (0.05 sec)

mysql> select * from usuarios//


mysql> select * from copia_usuario//


No hay comentarios:

Publicar un comentario