Está en la página 1de 37

AP6-AA2-Ev1-Usar lenguaje Transaccional sobre la Base de Datos

Presentado por:
Edwin Urueta Rodriguez

SERVICIO NACIONAL DE APRENDIZAJE – SENA


Abril 2019
Usar lenguaje Transaccional sobre la Base de Datos

Ejercicios:

Tomando como referencia, las entidades construidas en el laboratorio 12_SQL:

1. Construya los siguientes procedimientos Almacenados para inserción de


registro.

DATOS REALIZADOS EN MYSQL

PROFESOR:
Delimiter //
CREATE PROCEDURE insertarprofesor (
IN Documento varchar(11),
IN Nombre varchar(30),
IN Apellido varchar(30),
IN Catedra int(11),
IN Salario int(11)
)
BEGIN
INSERT INTO profesor
(ProDocumento, ProNombre, ProApellido, ProCatedra, ProSalario)
VALUES
(Documento, Nombre, Apellido, Catedra, Salario);
End //

CALL Insertarprofesor ('1111845','Eduard','Valencia','5', '1300000');


CURSOS
Delimiter //
CREATE PROCEDURE insertarcurso (
IN Codigo int(11),
IN Nombre varchar(100),
IN Hora int(11),
IN Valor int(11)
)
BEGIN
INSERT INTO curso
(CurCodigo, CurNombre, CurHora, CurValor)
VALUES
(Codigo, Nombre, Hora, Valor);
End //

CALL insertarcurso ('146544','Introducion SQL','50','4000000');


ESTUDIANTE
Delimiter //
CREATE PROCEDURE nuevoestudiante (
IN Documento varchar(11),
IN Nombre varchar(30),
IN Apellido varchar(30),
IN Edad int(11)
)
BEGIN
INSERT INTO estudiante
(EstDocumento, EstNombre, EstApellido, EstEdad)
VALUES
(Documento, Nombre, Apellido, Edad);
End //

CALL nuevoestudiante ('14212210','Adonay','Romero', '40');


ESTUDIANTEXCURSO
Delimiter //
CREATE PROCEDURE nuevoestudiantexcurso (
IN Fechainicio date,
IN Curso int(11),
IN Documento varchar(11)
)
BEGIN
INSERT INTO estudiantexcurso
(EstFechainicio, EstCurso, EstDocumento)
VALUES
(Fechainicio, Curso, Documento);
End //

CALL nuevoestudiantexcurso ('2012-01-01','146544','14212210');


ORACLE

 TABLA CLIENTE

 TABLA ARTICULO
 TABLA PEDIDO

COMPAÑÍA
Delimiter //
CREATE PROCEDURE nuevacompañia (
IN Nit varchar(11),
IN Nombre varchar(30),
IN Añofundacion int(11),
IN Reprelegal varchar(100)
)
BEGIN
INSERT INTO compañia
(ComNit, ComNombre, ComAñofundacion, ComReprelegal)
VALUES
(Nit, Nombre, Añofundacion, Reprelegal);
End //
CALL nuevacompañia ('899999999-7','Seguros Nuevos','2005','Eduard Romero');

TIPOS DE AUTOMOTORES
Delimiter //
CREATE PROCEDURE nuevoautomotortipo (
IN Tipo int(11),
IN Nombre varchar(20)
)
BEGIN
INSERT INTO automotorestipos
(AutTipo, AutNombre)
VALUES
(Tipo, Nombre);
End //
CALL nuevoautomotortipo ('5','Camioneta');

AUTOMOTORES
Delimiter //
CREATE PROCEDURE nuevoauto (
IN Placa varchar(6),
IN Marca varchar(30),
IN Tipo int(11),
IN Modelo int(11),
IN Numpasajeros int(11),
IN Cilindraje int(11),
IN Numchasis varchar(20)
)
BEGIN
INSERT INTO vehiculos
(VehPlaca, VehMarca, VehTipo, VehModelo, VehNumpasajeros, VehCilindraje,
VehNumchasis)
VALUES
(Placa, Marca, Tipo, Modelo, Numpasajeros, Cilindraje, Numchasis);
End //
CALL nuevoauto ('DKT120','Mazda Fx','5','2010', '5','2400', 'wywwzz200kk023d49');

ASEGURAMIENTOS
Delimiter //
CREATE PROCEDURE nuevoaseguramiento (
IN Codigo int(11),
IN Fechainicio date,
IN Fechaexpiracion date,
IN Valorasegurado int(11),
IN Estado varchar(100),
IN Costo int(11),
IN Placa varchar(6)
)
BEGIN
INSERT INTO aseguramientos
(AseCodigo, AseFechainicio, AseFechaexpiracion, AseValorasegurado, AseEstado,
AseCosto, AsePlaca)
VALUES
(Codigo, Fechainicio, Fechaexpiracion, Valorasegurado, Estado, Costo, Placa);
End //

CALL nuevoaseguramiento ('4','2012-10-30','2013-10-30','60000000',


'vijente','700000', 'DKT120');

INCIDENTES
Delimiter //
CREATE PROCEDURE nuevoinsidente (
IN Codigo int(11),
IN Fecha date,
IN Placa varchar(6),
IN Lugar varchar(40),
IN Numeroheridos int(11),
IN Numeromuertos int(11),
IN Autosinvolucrados int(11)
)
BEGIN
INSERT INTO incidentes
(IncCodigo, IncFecha, IncPlaca, IncLugar, IncNumeroheridos, IncNumeromuertos,
IncAutosinvolucrados)
VALUES
(Codigo, Fecha, Placa, Lugar, Numeroheridos, Numeromuertos, Autosinvolucrados);
End //
CALL nuevoinsidente ('4','2011-07-27','DKT120','Pereira','2','1','1');

2. En Oracle construya los procedimientos almacenados para realizar los


Siguientes procesos:

• Muestre los salarios de los profesores ordenados por categoría.

• Muestre los cursos cuyo valor sea mayor a $500.000.


• Visualizar el nombre, apellido y dirección de todos aquellos clientes que hayan
realizado un pedido el día 25 /02/2012.

• Listar todos los pedidos realizados incluyendo el nombre del artículo.

• Listar los todos datos de los automotores cuya póliza expira en octubre de 2013,
este reporte debe visualizar la placa, el modelo, la marca, número de pasajeros,
cilindraje nombre de automotor, el valor de la póliza y el valor asegurado.
3. En MySQL construya los procedimientos almacenados para realizar los
siguientes procesos:

 Muestre todos los campos de la tabla curso en orden ascendente según el valor.

CREATE PROCEDURE cursovalorascendente()


SELECT CurCodigo, CurNombre, CurHora, CurValor
FROM curso
ORDER BY CurValor;

CALL cursovalorascendente;

 Mostrar los pedidos con los respectivos artículos (código, nombre, valor y
cantidad pedida).

CREATE PROCEDURE pedidosarticulos()


SELECT axppedidoidentidad, arttitulo, axpValorventaarticulo, AxpCantidadarticulo
FROM articulo join articuloxpedido join pedido join cliente
ON pedidentidadcliente = cliidentidad and axppedidoidentidad = pedidentidad and
artidentidad = axparticuloidentidad;}

CALL pedidosarticulos;
 Visualizar los datos de las empresas fundadas entre el año 1991 y 1998.

CREATE PROCEDURE empresasfundadas()


SELECT ComNit, ComNombre, ComAñofundacion, ComReprelegal
FROM compañia
WHERE (ComAñofundacion) between 1990 and 2000;

CALL empresasfundadas;

 Visualizar todos los clientes organizados por apellido.

CREATE PROCEDURE clientesorganizados()


SELECT CliIdentidad, CliNombre, CliApellido, CliDireccion, CliDepartamento,
CliMescumpleaños
FROM cliente
ORDER BY (CliApellido) asc;

CALL clientesorganizados;
 Visualizar los datos de los incidentes que han tenido un (1) herido, este reporte
debe visualizar la placa del automotor, con los respectivos datos de la póliza
como son fecha de inicio, valor, estado y valor asegurado.

CREATE PROCEDURE incidentesheridos (heridos int)


SELECT IncCodigo, VehPlaca, IncFecha, IncLugar, IncNumeroheridos, AseCodigo,
AseFechainicio, AseEstado, AseValorasegurado, AseCosto
FROM vehiculos join automotorestipos join incidentes join aseguramientos
ON VehTipo = AutTipo and IncPlaca = VehPlaca and AsePlaca = VehPlaca
WHERE IncNumeroheridos = heridos;

CALL incidentesheridos(1);

 Visualizar los incidentes del vehículo con placas " FLL420", este reporte debe
visualizar la fecha, el lugar, la cantidad de heridos del incidente, la fecha de inicio
la de expiración de la póliza y el valor asegurado.
CREATE PROCEDURE placainicidente ()
SELECT IncFecha, IncPlaca, IncLugar, IncNumeroheridos, AseFechainicio,
AseFechaexpiracion, AseValorAsegurado
FROM vehiculos join automotorestipos join incidentes join aseguramientos
ON VehTipo = AutTipo and IncPlaca = VehPlaca and AsePlaca = VehPlaca
WHERE IncPlaca = 'FLL420';
CALL placainicidente;

4. Realice las Siguientes funciones en MySQL:

 Cuente el número de estudiantes cuya edad sea mayor a 22.

select count(estedad)
from estudiante
where estedad < 22;

 Muestre el nombre y la edad del estudiante más joven.

select * from estudiante


order by (estedad) asc limit 1;

 Calcule el valor promedio de los cursos cuyas horas sean mayores a 40.

SELECT AVG (CurValor)


FROM curso
WHERE CurHora >40;
 Muestre el nombre del profesor con menor sueldo

select pronombre, prosalario


from profesor
order by (prosalario) asc limit 1;

 Obtener el sueldo promedio de los profesores de la categoría 1.

select pronombre, avg(prosalario)


from profesor
where procatedra =1;

5. Realice las Siguientes funciones en ORACLE:

• Visualizar el nombre del cliente, la fecha y el valor del pedido más costoso.
create or replace FUNCTION pedidomascostos RETURN NUMBER IS valor
NUMBER;
BEGIN
SELECT MAX(PedValor) INTO valor FROM Pedido;
RETURN valor;
END;
• Mostrar cuantos artículos se tienen de cada editorial.
create or replace FUNCTION contareditoriales RETURN NUMBER IS valor
NUMBER;
BEGIN
SELECT COUNT(arteditorial) INTO valor FROM articulo;
RETURN valor;
END;

• Visualizar todos los datos de la póliza más costosa.


create or replace FUNCTION polizacostosa RETURN NUMBER IS valor NUMBER;
BEGIN
SELECT asecodigo INTO valor FROM aseguramientos WHERE asecosto=(select
min(asecosto) from aseguramientos );
RETURN valor;
END;

• Visualizar los incidentes con el mínimo número de autos involucrados, de este


incidente visualizar el estado de la póliza y el valor asegurado.
create or replace FUNCTION menos_autos RETURN NUMBER IS valor NUMBER;
BEGIN
SELECT incicodigo INTO valor FROM incidentes WHERE
incicanautosinvolucrados=(select min(incicanautosinvolucrados) from incidentes);
RETURN valor;
END;

• Visualizar los datos de la póliza cuyo valor asegurado es el más costoso, este
reporte además de visualizar todos los datos de la póliza, debe presentar todos los
datos del vehículo que tiene dicha póliza.
create or replace FUNCTION polizacostosa RETURN NUMBER IS valor NUMBER;
BEGIN
SELECT asecodigo INTO valor FROM aseguramientos WHERE
asevalorasegurado=(select max(asevalorasegurado) from aseguramientos );
RETURN valor;
END;
6. Construya los siguiente disparadores para controlar la actualización y
borrado de registros.

 TABLA PROFESOR

CREACION DE TABLA INSERTAR

CREATE TABLE profesorinsertado(


ProDocumento varchar(11), ProNombre varchar(30), ProApellido varchar(30), ProCatedra
int(11), ProSalario int(11), ProModificado datetime(6), ProUsuario varchar(15),
primary key (ProDocumento));

Creacion de Trigger INSERTAR de Tipo After(Después)

CREATE TRIGGER docenteAI AFTER INSERT


ON profesor
FOR EACH ROW
INSERT INTO profesorinsertado (
ProDocumento, ProNombre, ProApellido, ProCatedra, ProSalario, ProModificado, ProUsuario)
VALUES(
NEW.ProDocumento, NEW.ProNombre, NEW.ProApellido, NEW.ProCatedra, NEW.ProSalario,
NOW(), CURRENT_USER());

CREACION DE TABLA ACTUALIZACION

CREATE TABLE profesormodificado(


ProDocumento varchar(11), ProNombre varchar(30), ProApellido varchar(30),
ProCatedra int(11), ProSalario int(11), ProModificado datetime(6), ProUsuario
varchar(15),
primary key (ProDocumento));

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER docenteBU BEFORE UPDATE


ON profesor
FOR EACH ROW
INSERT INTO profesormodificado (
ProDocumento, ProNombre, ProApellido, ProCatedra, ProSalario, ProModificado,
ProUsuario)
VALUES(
OLD.ProDocumento, OLD.ProNombre, OLD.ProApellido, OLD.ProCatedra,
OLD.ProSalario, NOW(), CURRENT_USER());

CREACION DE TABLA ELIMINACION

CREATE TABLE profesoreliminado(


ProDocumento varchar(11), ProNombre varchar(30), ProApellido varchar(30),
ProCatedra int(11), ProSalario int(11), ProModificado datetime(6), ProUsuario
varchar(15),
primary key (ProDocumento));

Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER docenteBD BEFORE DELETE


ON profesor
FOR EACH ROW
INSERT INTO profesoreliminado (
ProDocumento, ProNombre, ProApellido, ProCatedra, ProSalario, ProModificado,
ProUsuario)
VALUES(
OLD.ProDocumento, OLD.ProNombre, OLD.ProApellido, OLD.ProCatedra,
OLD.ProSalario, NOW(), CURRENT_USER());

Resultados obtenidos
En la inserción, actualizacion y eliminacion
 TABLA CURSO

CREACION DE TABLA INSERTAR

CREATE TABLE cursoinsertado(


CurCodigo int(11), CurNombre varchar(100), CurHora int(11), CurValor int(11),
CurModificado datetime(6), CurUsuario varchar(15),
primary key (CurCodigo));

Creacion de Trigger INSERTAR de Tipo After(Después)

CREATE TRIGGER cursoAI AFTER INSERT


ON curso
FOR EACH ROW
INSERT INTO cursoinsertado(
CurCodigo, CurNombre, CurHora, CurValor, CurModificado, CurUsuario)
VALUES(
NEW.CurCodigo, NEW.CurNombre, NEW.CurHora, NEW.CurValor,
NOW(), CURRENT_USER());
CREACION DE TABLA ACTUALIZACION

CREATE TABLE cursomodificado(


CurCodigo int(11), CurNombre varchar(100), CurHora int(11), CurValor int(11),
CurModificado datetime(6), CurUsuario varchar(15),
primary key (CurCodigo));

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER cursoactualizadoBU BEFORE UPDATE


ON curso
FOR EACH ROW
INSERT INTO cursoModificado(
CurCodigo, CurNombre, CurHora, CurValor, CurModificado, CurUsuario)
VALUES(
OLD.CurCodigo, OLD.CurNombre, OLD.CurHora, OLD.CurValor,
NOW(), CURRENT_USER());

CREACION DE TABLA ELIMINACION

CREATE TABLE cursoeliminado (


CurCodigo int(11), CurNombre varchar(100), CurHora int(11), CurValor int(11),
CurModificado datetime(6), CurUsuario varchar(15),
primary key (CurCodigo));

Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER cursoeliAU BEFORE DELETE


ON curso
FOR EACH ROW
INSERT INTO cursoeliminado(
CurCodigo, CurNombre, CurHora, CurValor, CurModificado, CurUsuario)
VALUES(
OLD.CurCodigo, OLD.CurNombre, OLD.CurHora, OLD.CurValor,
NOW(), CURRENT_USER());
Resultados obtenidos
En la inserción, actualizacion y eliminacion

 TABLA ESTUDIANTE

CREACION DE TABLA INSERTAR

CREATE TABLE estudianteinsertado(


EstDocumento varchar(11), EstNombre varchar(30), EstApellido varchar(30), EstEdad int(11),
CurModificado datetime(6), CurUsuario varchar(15),
primary key (EstDocumento));

Creacion de Trigger INSERTAR de Tipo After(Después)

CREATE TRIGGER alumnoAI AFTER INSERT


ON estudiante
FOR EACH ROW
INSERT INTO estudianteinsertado (
EstDocumento, EstNombre, EstApellido, EstEdad, CurModificado, CurUsuario)
VALUES(
NEW.EstDocumento, NEW.EstNombre, NEW.EstApellido, NEW.EstEdad,
NOW(), CURRENT_USER());

CREACION DE TABLA ACTUALIZACION

CREATE TABLE estudiantemodificado(


EstDocumento varchar(11), EstNombre varchar(30), EstApellido varchar(30), EstEdad int(11),
CurModificado datetime(6), CurUsuario varchar(15),
primary key (EstDocumento));

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER alumnoBU BEFORE UPDATE


ON estudiante
FOR EACH ROW
INSERT INTO estudiantemodificado (
EstDocumento, EstNombre, EstApellido, EstEdad, CurModificado, CurUsuario)
VALUES(
OLD.EstDocumento, OLD.EstNombre, OLD.EstApellido, OLD.EstEdad,
NOW(), CURRENT_USER());

CREACION DE TABLA ELIMINACION

CREATE TABLE estudianteeliminado(


EstDocumento varchar(11), EstNombre varchar(30), EstApellido varchar(30), EstEdad int(11),
CurModificado datetime(6), CurUsuario varchar(15),
primary key (EstDocumento));

Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER alumnoBD BEFORE DELETE


ON estudiante
FOR EACH ROW
INSERT INTO estudianteeliminado (
EstDocumento, EstNombre, EstApellido, EstEdad, CurModificado, CurUsuario)
VALUES(
OLD.EstDocumento, OLD.EstNombre, OLD.EstApellido, OLD.EstEdad,
NOW(), CURRENT_USER());

Resultados obtenidos
En la inserción, actualizacion y eliminacion
EN ORACLE

 Tabla Cliente.
CREACION DE TABLA

Creación de Trigger INSERTAR de Tipo After(Después)


Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

Creacion de Trigger ELIMINAR de Tipo After(Después)

Resultados obtenidos
En la inserción, actualizacion y eliminacion
 TABLA ARTÍCULO.
CREACION DE TABLA

Creación de Trigger INSERTAR de Tipo After(Después)

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)


Creacion de Trigger ELIMINAR de Tipo After(Después)

Resultados obtenidos
En la inserción, actualizacion y eliminacion
 TABLA PEDIDO.
CREACION DE TABLA

Creación de Trigger INSERTAR de Tipo After(Después)

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)


Creacion de Trigger ELIMINAR de Tipo After(Después)

Resultados obtenidos
En la inserción, actualizacion y eliminacion

EN MySQL

 TABLA AUTOMOTORES

CREACION DE TABLA INSERTAR

CREATE TABLE vehiculoinsertado(


VehPlaca varchar(6), VehMarca varchar(30), VehTipo int(11), VehModelo int(11),
VehNumpasajeros int(11), VehCilindraje int(11), VehNumchasis varchar(20), VehModificado
datetime(6), VehUsuario varchar(15),
primary key (VehPlaca));
Creacion de Trigger INSERTAR de Tipo After(Después)

CREATE TRIGGER vehiculoAI AFTER INSERT


ON vehiculos
FOR EACH ROW
INSERT INTO vehiculoinsertado (
VehPlaca, VehMarca, VehTipo, VehModelo, VehNumpasajeros, VehCilindraje,
VehNumchasis, VehModificado, VehUsuario)
VALUES(
NEW.VehPlaca, NEW.VehMarca, NEW.VehTipo, NEW.VehModelo, NEW.VehNumpasajeros,
NEW.VehCilindraje, NEW.VehNumchasis, NOW(), CURRENT_USER());

CREACION DE TABLA ACTUALIZACION

CREATE TABLE vehiculoactualizado(


VehPlaca varchar(6), VehMarca varchar(30), VehTipo int(11), VehModelo int(11),
VehNumpasajeros int(11), VehCilindraje int(11), VehNumchasis varchar(20), VehModificado
datetime(6), VehUsuario varchar(15),
primary key (VehPlaca));

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER vehiculoBU BEFORE UPDATE


ON vehiculos
FOR EACH ROW
INSERT INTO vehiculoactualizado (
VehPlaca, VehMarca, VehTipo, VehModelo, VehNumpasajeros, VehCilindraje,
VehNumchasis, VehModificado, VehUsuario)
VALUES(
OLD.VehPlaca, OLD.VehMarca, OLD.VehTipo, OLD.VehModelo, OLD.VehNumpasajeros,
OLD.VehCilindraje, OLD.VehNumchasis, NOW(), CURRENT_USER());

CREACION DE TABLA ELIMINACION

CREATE TABLE vehiculoeliminado(


VehPlaca varchar(6), VehMarca varchar(30), VehTipo int(11), VehModelo int(11),
VehNumpasajeros int(11), VehCilindraje int(11), VehNumchasis varchar(20), VehModificado
datetime(6), VehUsuario varchar(15),
primary key (VehPlaca));
Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER vehiculoBD BEFORE DELETE


ON vehiculos
FOR EACH ROW
INSERT INTO vehiculoeliminado (
VehPlaca, VehMarca, VehTipo, VehModelo, VehNumpasajeros, VehCilindraje,
VehNumchasis, VehModificado, VehUsuario)
VALUES(
OLD.VehPlaca, OLD.VehMarca, OLD.VehTipo, OLD.VehModelo, OLD.VehNumpasajeros,
OLD.VehCilindraje, OLD.VehNumchasis, NOW(), CURRENT_USER());

Resultados obtenidos
En la inserción, actualizacion y eliminacion

 TABLA ASEGURAMIENTOS

CREACION DE TABLA INSERTAR

CREATE TABLE seguroinsertado(


AseCodigo int(11), AseFechainicio date, AseFechaexpiracion date, AseValorasegurado
int(11), AseEstado varchar(100), AseCosto int(11), AsePlaca varchar(6), ASeModificado
datetime(6), AseUsuario varchar(15), primary key (AseCodigo));

Creacion de Trigger INSERTAR de Tipo After(Después)

CREATE TRIGGER seguroAI AFTER INSERT


ON aseguramientos
FOR EACH ROW
INSERT INTO vehiculoinsertado (
AseCodigo, AseFechainicio, AseFechaexpiracion, AseValorasegurado, AseEstado, AseCosto,
AsePlaca, AseModificado, AseUsuario)
VALUES(
NEW.AseCodigo, NEW.AseFechainicio, NEW.AseFechaexpiracion,
NEW.AseValorasegurado, NEW.AseEstado, NEW.AseCosto, NEW.AsePlaca, NOW(),
CURRENT_USER());

CREACION DE TABLA ACTUALIZACION

CREATE TABLE seguroactualizado(


AseCodigo int(11), AseFechainicio date, AseFechaexpiracion date, AseValorasegurado
int(11), AseEstado varchar(100), AseCosto int(11), AsePlaca varchar(6), ASeModificado
datetime(6), AseUsuario varchar(15), primary key (AseCodigo));

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER seguroBU BEFORE UPDATE


ON aseguramientos
FOR EACH ROW
INSERT INTO seguroactualizado (
AseCodigo, AseFechainicio, AseFechaexpiracion, AseValorasegurado, AseEstado, AseCosto,
AsePlaca, AseModificado, AseUsuario)
VALUES(
OLD.AseCodigo, OLD.AseFechainicio, OLD.AseFechaexpiracion, OLD.AseValorasegurado,
OLD.AseEstado, OLD.AseCosto, OLD.AsePlaca, NOW(), CURRENT_USER());

CREACION DE TABLA ELIMINACION

CREATE TABLE seguroeliminado (


AseCodigo int(11), AseFechainicio date, AseFechaexpiracion date, AseValorasegurado
int(11), AseEstado varchar(100), AseCosto int(11), AsePlaca varchar(6), ASeModificado
datetime(6),
AseUsuario varchar(15), AseAccion varchar(45),
primary key (AseCodigo));

Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER seguroBD BEFORE DELETE


ON aseguramientos
FOR EACH ROW
INSERT INTO seguroeliminado (
AseCodigo, AseFechainicio, AseFechaexpiracion, AseValorasegurado, AseEstado, AseCosto,
AsePlaca, AseModificado, AseUsuario, AseAccion)
VALUES(
OLD.AseCodigo, OLD.AseFechainicio, OLD.AseFechaexpiracion, OLD.AseValorasegurado,
OLD.AseEstado, OLD.AseCosto, OLD.AsePlaca, NOW(), CURRENT_USER(), 'Registro
Eliminado');

Resultados obtenidos
En la inserción, actualizacion y eliminacion

 TABLA INCIDENTES

CREACION DE TABLA Iauditado

CREATE TABLE Iauditado (


IncCodigo int(11), IncFecha date, IncPlaca varchar(6), IncLugar varchar(40),
IncNumeroheridos int(11), IncNumeromuertos int(11), IncAutosinvolucrados int(11),
IncModificado date, IncUsuario varchar(15), IncAccion varchar(45),
primary key (IncCodigo),
foreign key (IncPlaca) references vehiculos (VehPlaca));

Creacion de Trigger INSERTAR de Tipo After(Después)

CREATE TRIGGER IAI AFTER INSERT


ON incidentes
FOR EACH ROW
INSERT INTO Iauditado(
IncCodigo, IncFecha, IncPlaca, IncLugar, IncNumeroheridos, IncNumeromuertos,
IncAutosinvolucrados, IncModificado, IncUsuario, IncAccion)
VALUES(NEW.IncCodigo, NEW.IncFecha, NEW.IncPlaca, NEW.IncLugar,
NEW.IncNumeroheridos, NEW.IncNumeromuertos, NEW.IncAutosinvolucrados, NOW(),
CURRENT_USER(), 'Registro Insertado');

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER IBU BEFORE UPDATE


ON incidentes
FOR EACH ROW
INSERT INTO Iauditado(
IncCodigo, IncFecha, IncPlaca, IncLugar, IncNumeroheridos, IncNumeromuertos,
IncAutosinvolucrados, IncModificado, IncUsuario, IncAccion)
VALUES(OLD.IncCodigo, OLD.IncFecha, OLD.IncPlaca, OLD.IncLugar,
OLD.IncNumeroheridos, OLD.IncNumeromuertos, OLD.IncAutosinvolucrados, NOW(),
CURRENT_USER(), 'Registro Modificado');

Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER IBD BEFORE DELETE


ON incidentes
FOR EACH ROW
INSERT INTO Iauditado(
IncCodigo, IncFecha, IncPlaca, IncLugar, IncNumeroheridos, IncNumeromuertos,
IncAutosinvolucrados, IncModificado, IncUsuario, IncAccion)
VALUES(OLD.IncCodigo, OLD.IncFecha, OLD.IncPlaca, OLD.IncLugar,
OLD.IncNumeroheridos, OLD.IncNumeromuertos, OLD.IncAutosinvolucrados, NOW(),
CURRENT_USER(), 'Registro Eliminado');

Resultados obtenidos
En la inserción, actualizacion y eliminacion

También podría gustarte