· 4 years ago · Jun 15, 2021, 08:34 AM
1USE jardineria;
2
3-- Actividad 8
4DELIMITER $$
5DROP PROCEDURE IF EXISTS cantidad_total_de_productos_vendidos$$
6CREATE PROCEDURE cantidad_total_de_productos_vendidos (
7 IN nombre_producto VARCHAR(70),
8 OUT cantidad_total INT
9)
10BEGIN
11 SELECT
12 COUNT(*)
13 FROM
14 producto INNER JOIN detalle_pedido
15 ON producto.codigo_producto = detalle_pedido.codigo_producto
16 WHERE
17 producto.nombre = nombre_producto
18 INTO cantidad_total;
19END
20$$
21
22DELIMITER ;
23CALL cantidad_total_de_productos_vendidos('Pala', @cantidad_total);
24SELECT @cantidad_total;
25
26-- Actividad 9
27DELIMITER $$
28DROP FUNCTION IF EXISTS calcular_numero_de_productos$$
29CREATE FUNCTION calcular_numero_de_productos (
30 nombre_product VARCHAR(70)
31)
32 RETURNS SMALLINT
33 DETERMINISTIC
34BEGIN
35 DECLARE total_stock INT;
36
37 SELECT
38 cantidad_en_stock
39 FROM
40 producto
41 WHERE
42 nombre = nombre_product
43 INTO total_stock;
44
45 RETURN total_stock;
46END
47$$
48
49DELIMITER ;
50SELECT calcular_numero_de_productos('Pala') AS 'Stock disponible';
51
52-- Actividad 10
53DROP TABLE IF EXISTS notificaciones;
54CREATE TABLE notificaciones (
55 id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
56 fecha_hora DATETIME NOT NULL,
57 total DECIMAL(15,2) NOT NULL,
58 codigo_cliente INT NOT NULL,
59 FOREIGN KEY (codigo_cliente) REFERENCES cliente(codigo_cliente)
60);
61
62DELIMITER $$
63DROP TRIGGER IF EXISTS trigger_notificar_pago$$
64CREATE TRIGGER trigger_notificar_pago
65AFTER INSERT ON pago
66FOR EACH ROW
67BEGIN
68 INSERT INTO notificaciones(fecha_hora, total, codigo_cliente)
69 VALUES (NEW.fecha_pago, NEW.total, NEW.codigo_cliente);
70END
71$$
72DELIMITER ;
73INSERT INTO pago VALUES (25, 'PayPal', 'ak-std-011024', '2010-03-12', 2130);
74
75SELECT *
76FROM notificaciones;