jueves, 29 de mayo de 2014

PRCATICA 9


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