jueves, 29 de mayo de 2014

PRCATICA 10


mysql> create database biblioteca_trigger_ejemplo;

Query OK, 1 row affected (0.05 sec)

mysql> use biblioteca_trigger_ejemplo;

Database changed

mysql> create table autor(codigo int not null auto_increment primary key,nombre

varchar(30));

Query OK, 0 rows affected (0.07 sec)

mysql> describe autor;

+--------+-------------+------+-----+---------+----------------+

| Field  | Type        | Null | Key | Default | Extra          |

+--------+-------------+------+-----+---------+----------------+

| codigo | int(11)     | NO   | PRI | NULL    | auto_increment |

| nombre | varchar(30) | YES  |     | NULL    |                |

+--------+-------------+------+-----+---------+----------------+

2 rows in set (0.05 sec)

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.05 sec)

mysql> describe libros;

+-------------+-------------+------+-----+---------+----------------+

| Field       | Type        | Null | Key | Default | Extra          |

+-------------+-------------+------+-----+---------+----------------+

| codigo      | int(11)     | NO   | PRI | NULL    | auto_increment |

| titulo      | varchar(30) | YES  |     | NULL    |                |

| ISBN        | varchar(30) | YES  |     | NULL    |                |

| editorial   | varchar(30) | YES  |     | NULL    |                |

| num_paginas | int(11)     | YES  |     | NULL    |                |

+-------------+-------------+------+-----+---------+----------------+

5 rows in set (0.01 sec)

mysql> create table usuarios(codigo int not null auto_increment primary key,nomb

re varchar(30),direccion varchar(50),telefono varchar(30),codigo_ejemplar int);

Query OK, 0 rows affected (0.10 sec)

mysql> describe usuarios;

+-----------------+-------------+------+-----+---------+----------------+

| Field           | Type        | Null | Key | Default | Extra          |

+-----------------+-------------+------+-----+---------+----------------+

| codigo          | int(11)     | NO   | PRI | NULL    | auto_increment |

| nombre          | varchar(30) | YES  |     | NULL    |                |

| direccion       | varchar(50) | YES  |     | NULL    |                |

| telefono        | varchar(30) | YES  |     | NULL    |                |

| codigo_ejemplar | int(11)     | YES  |     | NULL    |                |

+-----------------+-------------+------+-----+---------+----------------+

5 rows in set (0.01 sec)

mysql> create table ejemplares(codigo_ejemplar int not null auto_increment prima

ry key,localizacion varchar(30));

Query OK, 0 rows affected (0.06 sec)

mysql> describe ejemplares;

 

+-----------------+-------------+------+-----+---------+----------------+

| Field           | Type        | Null | Key | Default | Extra          |

+-----------------+-------------+------+-----+---------+----------------+

| codigo_ejemplar | int(11)     | NO   | PRI | NULL    | auto_increment |

| localizacion    | varchar(30) | YES  |     | NULL    |                |

+-----------------+-------------+------+-----+---------+----------------+

2 rows in set (0.01 sec)

mysql> insert into usuarios(nombre,direccion,telefono,codigo_ejemplar) values

    -> ('miguel','ave signos 23','56221234',3);

Query OK, 1 row affected (0.03 sec)

 

mysql> insert into usuarios(nombre,direccion,telefono,codigo_ejemplar)values('mi

guel','ave signos 23','53221234',3),('pedro','calle tulipanes','54321234',4),('a

manda','ave.constelacion','56432345',5);

Query OK, 3 rows affected (0.09 sec)

Records: 3  Duplicates: 0  Warnings: 0

mysql> select *from usuarios;

+--------+--------+------------------+----------+-----------------+

| codigo | nombre | direccion        | telefono | codigo_ejemplar |

+--------+--------+------------------+----------+-----------------+

|      1 | miguel | ave signos 23    | 53221234 |               3 |

|      2 | pedro  | calle tulipanes  | 54321234 |               4 |

|      3 | amanda | ave.constelacion | 56432345 |               5 |

+--------+--------+------------------+----------+-----------------+

3 rows in set (0.01 sec)

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 varch

ar(50),telefono_nuevo varchar(30),codigo_ejemplar_nuevo int,usuario varchar(40),

modificado datetime,codigo_usuario int (4));

Query OK, 0 rows affected (0.13 sec)

mysql> describe copia_usuario;

+--------------------------+-------------+------+-----+---------+----------------+

| Field                    | Type        | Null | Key | Default | Extra |

+--------------------------+-------------+------+-----+---------+----------------+

| codigo                   | int(11)     | NO   | PRI | NULL    | auto_increment |

| nombre_ant               | varchar(30) | YES  |     | NULL    | |

| direccion_anterior       | varchar(50) | YES  |     | NULL    | |

| telefono_anterior        | varchar(50) | YES  |     | NULL    | |

| codigo_ejemplar_anterior | int(11)     | YES  |     | NULL    | |

| nombre_nuevo             | varchar(30) | YES  |     | NULL    | |

| direccion_nueva          | varchar(50) | YES  |     | NULL    | |

| telefono_nuevo           | varchar(30) | YES  |     | NULL    | |

| codigo_ejemplar_nuevo    | int(11)     | YES  |     | NULL    | |

| usuario                  | varchar(40) | YES  |     | NULL     |

| modificado               | datetime    | YES  |     | NULL    | |

| codigo_usuario           | int(4)      | YES  |     | NULL    | |

+--------------------------+-------------+------+-----+---------+----------------+

12 rows in set (0.11 sec)

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;

    -> //

+--------+--------+------------------+----------+-----------------+

| codigo | nombre | direccion        | telefono | codigo_ejemplar |

+--------+--------+------------------+----------+-----------------+

|      1 | miguel | ave signos 23    | 53221234 |               3 |

|      2 | pedro  | calle tulipanes  | 54321234 |               4 |

|      3 | amanda | ave.constelacion | 56432345 |               5 |

+--------+--------+------------------+----------+-----------------+

3 rows in set (0.32 sec)

mysql> delete from usuarios where

    -> codigo_ejemplar=4//

Query OK, 1 row affected (0.51 sec)

mysql> select *from usuarios //

+--------+--------+------------------+----------+-----------------+

| codigo | nombre | direccion        | telefono | codigo_ejemplar |

+--------+--------+------------------+----------+-----------------+

|      1 | miguel | ave signos 23    | 53221234 |               3 |

|      3 | amanda | ave.constelacion | 56432345 |               5 |

+--------+--------+------------------+----------+-----------------+

2 rows in set (0.00 sec)

 

No hay comentarios.:

Publicar un comentario