0% encontró este documento útil (0 votos)
146 vistas6 páginas

Guía de Implementación de Triggers en MySQL

El documento describe la implementación de triggers en MySQL. Los triggers son objetos almacenados en la base de datos que se ejecutan automáticamente ante eventos como INSERT, UPDATE o DELETE en tablas. Se pueden crear triggers BEFORE y AFTER estos eventos y tienen palabras clave como NEW y OLD para acceder a los valores antes y después de la modificación. La sintaxis general para crear un trigger incluye el nombre, el evento y la tabla, así como las sentencias SQL a ejecutar.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
146 vistas6 páginas

Guía de Implementación de Triggers en MySQL

El documento describe la implementación de triggers en MySQL. Los triggers son objetos almacenados en la base de datos que se ejecutan automáticamente ante eventos como INSERT, UPDATE o DELETE en tablas. Se pueden crear triggers BEFORE y AFTER estos eventos y tienen palabras clave como NEW y OLD para acceder a los valores antes y después de la modificación. La sintaxis general para crear un trigger incluye el nombre, el evento y la tabla, así como las sentencias SQL a ejecutar.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

IMPLEMENTACIN DE TRIGGERS DEFINICION Son objetos relacionados con tablas y almacenados en la base de datos, que se ejecutan o se muestran cuando

sucede un evento sobre sus tablas asociadas. CONSIDERACIONES A TENER EN CUENTA. Los eventos pueden ser las sentencias INSERT, DELETE, UPDATE; que modifican los datos de una tabla. Se pueden ejecutar antes (BEFORE) y/o despus (AFTER) de que sean ejecutados los datos. Tienen dos palabras clave, OLD y NEW; que se refieren a los valores que tienen las columnas antes y despus de la modificacin ; los INSERT permiten NEW, los DELETE OLD y UPDATE permiten ambos. Para nombrar un triggers se debe seguir una convencin a fin de reconocer de manera ms fcil sobre que tabla y evento Sintaxis general CREATE TRIGGER <nombre> {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON <tablename> FOR EACH ROW BEGIN <sentenciasSQL> END;

CREACION DE TRIGGERS 1.- Implementamos la tabla de control create table auditoria1( mrc varchar(60) not null, fch date hra time ) 2.- se implementa el trigger en este caso de insercin delimiter\\ create trigger tinsermarca1 after insert on marca for each row begin insert into auditoria1 values(new.nommrc,curdate(),curtime()); call VerMarca(); end\\ end; not null, not null

delimiter\\ create trigger tinsermarca1 after update on marca for each row begin insert into auditoria1 values(new.nommrc,curdate(),curtime()); call VerMarca(); end\\ end;

3.- Se procede a ejecutar la insercin de marcas

insert into marca values('mrc','macromedia') 4.-hacemos una consulta sobre la tabla auditoria select * from auditoria1

delimiter\\ create trigger tgrcategoria after insert on categoria for each row begin insert into auditcategoria values(user(),new.nomctg,curdate(),curtime()); end\\ delimiter;

Implementacin de usuarios con mysql Crear usuarios MySQL es un sistema de gestin de bases de datos claramente orientado a la web, y una de los sntomas en su arquitectura ha venido siendo que la creacin de los usuarios se realiza en la misma sentencia que el permiso (grant) de acceso a una o varias bases de datos. La orientacin de MySQL va cambiando con el tiempo y el uso que se le da a las bases de datos cada vez trasciende ms el entorno web, actualmente hay tres formas de crear un usuario:

Con la sentencia SELECT current_user(), podemos ver todos los usuarios que estn asignados con una base de datos. Para asignar privilegios a bases de datos especficas o tablas especficas, se debe usar GRANT. Utilizando este mtodo, tenemos que forzar que se refresquen las tablas de permisos usando FLUSH PRIVILEGES. Con algunos privilegios La forma clsica, con la sentencia GRANT Utilizando la sentencia GRANT podemos crear un usuario a la par que otorgarle uno o varios privilegios sobre los objetos de una base de datos, o la base de datos completa. Al encontrarse una sentencia de tipo GRANT, el motor de MySQL revisa si el usuario existe previamente para el contexto que estamos asignndole permisos, y si dicho usuario no est presente en el sistema, lo crea. - Nos conectamos con un usuario que tenga privilegios, root, como propietario de la base de datos, los tiene. GRANT SELECT, INSERT ON bdventas.* TO 'miguelon'@'localhost' IDENTIFIED BY 'miki' Esta sentencia crea al usuario miguelon al que se le permite seleccionar e insertar registros en las tablas de la base de datos test. grant create on test.* to 'jeshu'@'localhost' identified by 'jmmc' crea al usuario jeshu, el cual puede crear objetos en la base de datos test. Con todos los privilegios Si queremos darle todos los privilegios entonces crearemos al usuario de la siguiente manera.

grant all privileges on *.* to 'silva'@'localhost' identified by 'zapata' creamos al usuario miguel grant select,insert,update,delete on bdalumnos.* to 'miguel'@'localhost' identified by 'silva'; luego se le quita el privilegios select Quitar privilegios revoke select on bdalumnos.* from 'miguel'@'localhost' identified by 'silva'; REVOKE all ON *.* from miguelon; Eliminar usuarios drop user 'silva'@'localhost'

abajo

Estoy tratando de establecer una serie de la historia dispara de forma automtica para recoger la historia de una tabla dada a travs de los factores desencadenantes. Quiero usar disparadores que as se garantiza que la captura de todos los cambios sin tener en cuenta si alguien se olvida de l ahorro en la aplicacin. Mi problema es que tengo el gatillo. CREATE TRIGGER `db`.`delete_history_trigger` BEFORE DELETE ON `db`.`payments` FOR EACH ROW BEGIN INSERT INTO `payments_history` select *, 'delete', NOW(), USER() from `payments` where `PAYMENT_ID` = OLD.`PAYMENT_ID`; END //

CREATE TRIGGER `db`.`delete_history_trigger` BEFORE DELETE ON `db`.`payments` FOR EACH ROW BEGIN INSERT INTO `payments_history` select *, 'delete', NOW(), USER() from `payments` where `PAYMENT_ID` = OLD.`PAYMENT_ID`; END //

También podría gustarte