mysql>
CREATE DATABASE pruebas_dispara;
Query
OK, 1 row affected (0.07 sec)
mysql>
USE pruebas_dispara;
Database
changed
mysql>
CREATE TABLE clientes(id_cliente int not null auto_increment,nombre varch
ar(100),seccion
varchar(20),Accion varchar(10) default 'Insertado',PRIMARY KEY(i
d_cliente),KEY(nombre));
Query
OK, 0 rows affected (0.31 sec)
mysql>
DESCRIBE clientes;
+------------+--------------+------+-----+-----------+----------------+
|
Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+-----------+----------------+
|
id_cliente | int(11) | NO | PRI | NULL | auto_increment |
|
nombre | varchar(100) | YES | MUL | NULL | |
|
seccion | varchar(20) | YES
| | NULL | |
|
Accion | varchar(10) | YES
| | Insertado | |
+------------+--------------+------+-----+-----------+----------------+
4
rows in set (0.11 sec)
mysql>
INSERT INTO clientes (nombre,seccion) VALUES ('Miguel','informatica'),('R
osa','comida'),('Maria','ropa'),('Albert','informatica'),('Jordi','comida');
Query
OK, 5 rows affected (0.11 sec)
Records:
5 Duplicates: 0 Warnings: 0
mysql>
select * from clientes;
+------------+--------+-------------+-----------+
|
id_cliente | nombre | seccion |
Accion |
+------------+--------+-------------+-----------+
| 1 | Miguel | informatica | Insertado
|
| 2 | Rosa | comida
| Insertado |
| 3 | Maria | ropa
| Insertado |
| 4 | Albert | informatica | Insertado
|
| 5 | Jordi
| comida | Insertado |
+------------+--------+-------------+-----------+
5
rows in set (0.00 sec)
mysql>
CREATE TABLE auditoria_clientes(id int not null auto_increment,nombre_ant
erior
varchar(100),seccion_anterior varchar(20),nombre_nuevo varchar(100),seccio
n_nueva
varchar(20),usuario varchar(40),modificado datetime,proceso varchar(10),
Id_Cliente
int(4),primary key(id));
Query
OK, 0 rows affected (0.36 sec)
mysql>
DESCRIBE auditoria_clientes;
+------------------+--------------+------+-----+---------+----------------+
|
Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+----------------+
|
id | int(11) | NO
| PRI | NULL | auto_increment |
|
nombre_anterior | varchar(100) |
YES |
| NULL | |
|
seccion_anterior | varchar(20) |
YES |
| NULL | |
|
nombre_nuevo | varchar(100) |
YES |
| NULL | |
|
seccion_nueva | varchar(20) | YES
| | NULL | |
|
usuario | varchar(40) | YES
| | NULL | |
|
modificado | datetime | YES
| | NULL | |
|
proceso | varchar(10) | YES
| | NULL | |
|
Id_Cliente | int(4) | YES
| | NULL | |
+------------------+--------------+------+-----+---------+----------------+
9
rows in set (0.06 sec)
mysql>
DELIMITER //
mysql>
CREATE TRIGGER Inserta_auditoria_clientes
-> AFTER INSERT ON clientes
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO
auditoria_clientes(nombre_nuevo, seccion_nueva, usuario, modi
ficado,
proceso, Id_Cliente) VALUES (NEW.nombre, NEW.seccion, CURRENT_USER(), NO
W(),
NEW.Accion, NEW.id_cliente);
-> END;
-> //
Query
OK, 0 rows affected (0.19 sec)
mysql>
CREATE TRIGGER Modifica_auditoria_clientes
-> BEFORE UPDATE ON clientes
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO
auditoria_clientes(nombre_anterior, seccion_anterior, nombre_
nuevo,
seccion_nueva, usuario, modificado, Id_Cliente) VALUES (OLD.nombre, OLD.s
eccion,
NEW.nombre, NEW.seccion, CURRENT_USER(), NOW(), NEW.id_cliente);
-> END;
-> //
Query
OK, 0 rows affected (0.20 sec)
mysql>
CREATE TRIGGER Elimina_auditoria_clientes
-> AFTER DELETE ON clientes
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO
auditoria_clientes(nombre_anterior, seccion_anterior, usuario
,
modificado, Id_Cliente) VALUES (OLD.nombre, OLD.seccion, CURRENT_USER(), NOW()
,
OLD.id_cliente);
-> END;
-> //
Query
OK, 0 rows affected (0.01 sec)
mysql>
DELIMITER;
-> SHOW TRIGGERS;
-> INSERT INTO CLIENTES(nombre,seccion)
VALUES ('Edith Martinez','Informatica');
-> select * from clientes;
-> select * from auditoria_clientes;
-> UPDATE CLIENTES SET NOMBRE='JORDI
APOLINAR',SECCION='PRODUCTIVIDAD' WHERE ID_CLIENTE=5;
-> select * from clientes;
-> select * from auditoria_clientes;
-> DELETE FROM CLIENTES WHERE
NOMBRE='Edith Martinez';
->
select * from clientes;
-> select * from auditoria_clientes
No hay comentarios.:
Publicar un comentario