DISPARADORES SENTENCIAS EN BASE DE DATOS
Sentencias
Create table proveedor (id_proveedor varchar (10) not null primary key, nombre varchar (10), telefono varchar (15), direccion varchar (12));
Create table Suministro (id_suministro varchar (10) not null primary key, fecha date, cantidad integer, id_proveedor varchar(10), foreign key (id_suministro) references proveedor (id_proveedor));
Create table productos (id_productos varchar (10) not null primary key, nombre varchar (10), descripcion varchar (30), precio integer, id.categoria varchar (10), id suministro varchar (10) foreign key (id_suministro) References suministro (id_suministro));
Create table categoría (id_categoria varchar (10) not null primary key, nombre varchar (10));
Create table factura_maestra (id_factura varchar (10 ) not null primary key, id_producto varchar (10), id_cliente varchar (10), Fecha Date, id_empleado varchar (10), iva (float));
Create table cliente (id_cliente varchar (10) not null primary key, nombre varchar (10), sexo char, telefono varchar (12), direccion varchar (15), fechadenaci date);
Create table factura_detalle (id_detalle varchar (10) not null primary key, nid_factura varchar (10), id_producto varchar (10), cantidad integer, fecha date, id_cliente varchar (10), valor_unitario integer, valor_total float, id_formadepago varchar (10));
Create table empleado (id_empleado varchar (10) not null primary key, nombre varchar (10), sexo char, teléfono number, id_cargo varchar (10), id_sucursal varchar (10));
Create table sucursal (id_sucursal varchar (10) not null primary key, nombre varchar (10), dirección varchar (12));
Create table cargo (id_cargo varchar (10) not null primary key, nombre varchar (10), salario number);
Create table forma_de_pago (id_formadepago varchar (10) not null primary key, nombre varchar (10), descripción varchar (30));
Create table cartera (id_factura varchar (10) not null primary key, abonos number, estado char, fecha date, valor_total varchar (20), id_cliente varchar (10), id_formadepago varchar (10), id_abono varchar (10));
Create table abonos (id_abono varchar (10) not null primary key, id_factura varchar (10), fecha date, valor_abono varchar (20));
Alter table producto add (constraint producto_fk foreign key (id_categoria) references categoria (id_categoria));
Alter table factura_maestra add (constraint factura_maestra_fk foreign key (id_producto) references producto (id_producto), foreign key (id_cliente) references cliente (id_cliente), foreign key (id_empleado) references empleado (id_empleado));
Alter table factura_detalle add (constraint facture_detalle_fk foreign (id_factura) references factura_maestra (id_factura), foreign key (id_producto) references factura_maestra (id_producto), foreign key (id_formadepago) references forma_de_pago (id_formadepago));
Alter table empleado add (constraint empleado_fk foreign key (id_sucursal) references sucursal (id_sucursal), foreign key (id_cargo) references cargo (id_cargo));
Alter table cartera add (constraint cartera_fk foreign key (id_abono) references abonos (id_abono), foreign key (id_formadepago) references forma_de_pago (id_formadepago), foreign key (fecha) references abonos (fecha));
Alter table abonos add (constraint abono_fk foreign key (id_factura) references cartera (id_factura));
Insert into proveedor (id_proveedor, nombre, telefono, dirección) values (001, Juan Manuel, 5600023, Calle 15 n° 12 - 58);
Insert into Suministro (id_suministro, fecha, cantidad, id_proveedor) values (A01, to_date(‘15/03/2010’, ‘dd/mm/yyyy’), 5, 001);
Insert into productos (id_productos, nombre, descripción, precio, id.categoria, id suministro) values (tele, televisor, Aparato electrodoméstico, 500000, te, A01);
Insert into categoría (id_categoria, nombre) values (te, Electrodomesticos);
Insert into factura_maestra (id_factura, id_producto, id_cliente, Fecha, id_empleado, iva ) values (A1B1, tele, 0101, to_date(‘15/03/2010’, ‘dd/mm/yyyy’), 0110, 5%);
Insert into cliente (id_cliente, nombre, sexo, teléfono, dirección, fechadenaci) values (0101, Lucia Figueroa, F, 3005602596, Travs 23 n° 5- 95, to_date(‘15/03/2010’, ‘dd/mm/yyyy’));
Insert into factura_detalle (id_detalle, id_factura, id_producto, cantidad, fecha, id_cliente, valor_unitario, valor_total, id_formadepago) values (t0e0, A1B1, tele, 5, to_date(‘15/03/2010’, ‘dd/mm/yyyy’), 0101, 500000, 2500000, cre);
Insert into empleado (id_empleado, nombre, sexo, teléfono, id_cargo, id_sucursal) values (0110, Maribel Fontalvo, F, 3009635221, sss, prac);
Insert into sucursal (id_sucursal, nombre, dirección) values (prac, olímpica, Calle 15 n° 30-59);
Insert into cargo (id_cargo, nombre, salario) values (sss, cajera, 600000);
Insert into forma_de_pago (id_formadepago, nombre, descripción) values (cre, crédito, manual);
Insert into cartera (id_factura, abonos, estado, fecha, valor_total, id_cliente id_formadepago, id_abono) values (A1B1, 200000, pendiente, to_date(‘20/03/2010’, ‘dd/mm/yyyy’), 2300000, 0101, cre, cred1);
Insert into abonos (id_abono, id_factura, fecha, valor_abono) values (cred1, A1B1, to_date(‘dd/mm/yyyy’, ‘20/05/2010’), 200000);
Triggers
Create or replace trigger Tabono
Before insert
On abonos
Referencing new as new old as old
For each row
Declare
Begin
update cartera set abonos=abonos+:new.valor where id_factura=:new.id_factura;
End Tabono;
Create or replace trigger Tdetalle
After insert
On Factura_maestra
Referencing new as new old as old
For each row
Declare
Begin
update Factura_detalle set id.producto=new.valor where id_factura=:new.id_factura;
End Tdetalle;
Create or replace trigger TFecha
before insert
On Factura_maestra
Referencing new as new old as old
For each row
Declare
Begin
update Factura_detalle set fecha=now()
End Tdetalle;
Create or replace trigger TdetalleClien
After insert
On Factura_maestra
Referencing new as new old as old
For each row
Declare
Begin
update Factura_detalle set id.cliente=new.valor where id_factura=:new.id_factura;
End Tdetalle;