miércoles, 27 de septiembre de 2017

CONTINUA PRACTICA DE BITÁCORA MYSQL.....



Uso de el comando Insert
   insert into clientes(nombre,direccion) values ('yolanda Rodriguez','calle sor juana ');




ELIMINAR BASE DE DATOS MYSQL
Con la sintaxis superior no tendríamos ningún problema en eliminarla siempre y cuando exista. Para asegurarnos que la BBDD se elimine y que en caso de que no exista no salgan mensajes de error podemos usar la sentencia ‘IF EXIST‘:
Esta sería una manera más elegante de eliminar una base de datos.
ELIMINAR TABLA MYSQL
Esta es la sintaxis básica con la que si tenemos permisos para hacerlo…. borraríamos una tabla. Podemos afinar la sentencia añadiendo ‘IF EXISTS‘, es decir si existe.
De esta manera solo borraríamos la tabla si esta existe. Es recomendable usar ‘IF EXISTS‘ ya que si la tabla no existe cortaría la ejecución del código MySQL restante.
Se pueden borrar varias tablas separando el nombre de cada una con una ‘,’.


PASOS DE LA PRACTICA:

CREATE DATABASE proyecto;
USE proyecto;
CREATE TABLE IF NOT EXISTS carrera (`clave_carrera` int(11) NOT NULL,`nom_carrera` varchar(20) NOT NULL, `num_depto` int(11) NOT NULL, PRIMARY KEY (`clave_carrera`), KEY `num_depto` (`num_depto`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE carrera (clave_carrera int(11) PRIMARY KEY,
                                          nom_carrera varchar(20) NOT NULL, 
                                          num_depto int(11) NOT NULL) ENGINE=innoDB;


CREATE TABLE carrera (clave_carrera int(11) PRIMARY KEY,
                                          nom_carrera varchar(20) NOT NULL, 
                                          num_depto int(11) NOT NULL,
                                          KEY num_depto (num_depto)) ENGINE=innoDB;


CREAR LA TABLA BITÁCORA Y CREAR TRIGGER  PARA INSETAR, (PARA LA TABLA CARRERA):

La estructura de la tabla bitácora sería la siguiente:

CREATE TABLE IF NOT EXISTS `bitacora` (`id` int(11) NOT NULL AUTO_INCREMENT, `operacion` varchar(10) DEFAULT NULL, `usuario` varchar(40) DEFAULT NULL, `host` varchar(30) NOT NULL, `modificado` datetime DEFAULT NULL, `tabla` varchar(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE bitacora(id int(11) PRIMARY KEY,
                                               operacion varchar(10) DEFAULT NULL,
                                               usuario varchar(40) DEFAULT NULL,
                                               host varchar(30) NOT NULL,
                                               modificado datetime DEFAULT NULL,
                                               tabla varchar(40) NOT NULL) ENGINE=innoDB;




 DROP TRIGGER IF EXISTS insertar_bitacora_carrera;

CREATE TRIGGER insertar_bitacora_carrera AFTER INSERT ON carrera
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla)
VALUES (SUBSTRING(USER(), (INSTR(USER(),@)+1)), SUBSTRING(USER(),1,(instr(user(),@)-1)), 'INSERTAR',

NOW(), 'CARRERA');









CREATE TRIGGER bit_carr_upd AFTER UPDATE ON carrera
FOR EACH ROW 
INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) 

VALUES (SUBSTRING(USER(), (INSTR(USER(),@)+1)), SUBSTRING(USER(),1,(instr(user(),@)-1)), 'ACTUALIZAR', NOW(), 'CARRERA');








Nota: insetar un registro y consultar bitacora.....
INSERT INTO carrera VALUES(3,'LIC EN CONT', '234');

el campo Depto de la tabla carrera no es caracter, por lo tanto no lleva comillas,
recuerden usar el comando DESCRIBE CARRERA;
LO CUAL VIZUALIZA LOS TIPOS DE CAMPOS....
______________________________________________________________________________

 CREAR TRIGGER  PARA MODIFICAR (PARA LA TABLA CARRERA):

DROP TRIGGER IF EXISTS `bit_carr_upd`;

CREATE TRIGGER `bit_carr_upd` AFTER UPDATE ON `carrera`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@’)+1)), SUBSTRING(USER(),1,(instr(user(),’@’)-1)), “ACTUALIZAR”, NOW(), “CARRERA”);

Nota: MODIFICAR un registro y consultar bitacora.....
UPDATE carrera SET nom_carrera="CONTADURIA" WHERE clave_carrera="3"; _________________________________________________________________________________
                                                
CREAR TRIGGER  PARA BORRAR (PARA LA TABLA CARRERA):   
DROP TRIGGER IF EXISTS `bit_carr_del`;

CREATE TRIGGER bit_carr_del AFTER DELETE ON carrera 
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) 
VALUES (SUBSTRING(USER(), (INSTR(USER(),@)+1)), SUBSTRING(USER(),1,(instr(user(),@)-1)),

'ELIMINAR', NOW(), 'CARRERA');  





                                  
Nota: BORRAR un registro y consultar bitacora.....
DELETE FROM carrera WHERE clave_carrera=4;

________________________________________________________________________


No hay comentarios:

Publicar un comentario