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