Ayuda a convertir un codigo MySQL a PostgreSQL
Publicado por Cristian Camilo Bahamon Castaño (1 intervención) el 11/12/2019 05:54:53
Hola soy novato en Postgresql y porfa necesito ayuda para convertir este codigo MySQL estoy trabajando con pgadmin4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
create database bdcarrito;
use bdcarrito;
CREATE TABLE producto(
CodigoProducto int(11) NOT NULL,
Nombre varchar (100) NOT NULL,
Precio decimal (18.2) NOT NULL,
Imagen varchar (20) NOT NULL,
PRIMARY KEY (codigoProducto)
);
INSERT INTO producto VALUES (1, 'Falda-Negra', 34.50, 'falda-negra.jpg'),
(2, 'Pantalon-Azul', 30.00, 'pantalon-azul.jpg'),
(3, 'Pantalon-Flores', 45.87, 'pantalon-flores.jpg'),
(4, 'Pantalon-Top', 43.90, 'pantalon-top.jpg'),
(5, 'Polo-Mangas', 28.88, 'polo-mangas.jpg'),
(6, 'Short-Polo', 56.80, 'short-polo.jpg'),
(7, 'Short-Top', 76.70, 'short-top.jpg');
CREATE TABLE usuarios (
CodUsuario int (11) NOT NULL AUTO_INCREMENT,
ApeUsuario varchar (30) NOT NULL,
NomUsuario varchar (30) NOT NULL,
CiudUsuario varchar (100) NOT NULL,
Perfil varchar (15) NOT NULL,
Correo varchar (30) NOT NULL,
ClaveUsuario varchar (30) NOT NULL,
PRIMARY KEY (CodUsuario)
);
INSERT INTO usuarios VALUES (1, 'Ortiz Collazos', 'Miguel', 'Cali', 'Admin', 'grau@gmail.com', '111'),
(2, 'Lopez Ruiz', 'Jenifer', 'Pereira', 'Cliente', 'jenifer@gmail.com', '123'),
(3, 'Aguilera Moreno', 'Sergio', 'Medellin', 'Cliente', 'sergio@gmail.com', '147');
CREATE TABLE venta (
CodigoVenta int (11) NOT NULL,
Cliente varchar (100) NOT NULL,
Fecha datetime NOT NULL,
PRIMARY KEY (CodigoVenta)
);
INSERT INTO venta VALUES (1, 'Jenifer Lopez Ruiz\r\n', '2017-11-22 00:00:00'),
(2, 'Sergio Aguilera Moreno\r\n', '2017-11-23 15:30:00'),
(3, 'Miguel Ortiz Collazos\r\n', '2017-11-21 19:45:00');
CREATE TABLE detalleventa (
CodigoVenta int (11) NOT NULL,
CodigoProducto int (11) NOT NULL,
Cantidad decimal (18,2) NOT NULL,
Descuento decimal (18,2) NOT NULL,
PRIMARY KEY (CodigoVenta, CodigoProducto),
KEY FK_DetalleVenta_Producto(CodigoProducto),
CONSTRAINT FK_DetalleVenta_Producto FOREIGN KEY (CodigoProducto) REFERENCES producto (CodigoProducto),
CONSTRAINT FK_DetalleVenta_Venta FOREIGN KEY (CodigoVenta) REFERENCES venta (CodigoVenta)
);
INSERT INTO detalleventa VALUES
(1,2,3.00,3.75),
(1,5,2.00,2.88),
(2,4,4.00,3.78);
CREATE PROCEDURE spF_detalleVenta_one1(
_cod int)
BEGIN
SELECT d.codigoventa,d.codigoproducto,p.nombre,d.cantidad,d.descuento FROM detalleventa d
inner join producto p on p.codigoproducto=d.codigoproducto
WHERE CodigoVenta=_cod;
END;
CREATE PROCEDURE spF_detalleVenta_one2(
_cod int)
BEGIN
SELECT d.codigoventa,d.codigoproducto,p.nombre,d.cantidad,d.descuento FROM detalleventa d
inner join producto p on p.codigoproducto=d.codigoproducto
WHERE CodigoVenta=_cod;
END;
DROP PROCEDURE IF EXISTS spF_producto_All;
CREATE PROCEDURE spF_producto_All(
)
BEGIN
SELECT
p.codigoProducto, p.nombre, p.precio, p,imagen
FROM producto p ORDER BY P.nombre;
END;
DROP PROCEDURE IF EXISTS spF_producto_one;
CREATE PROCEDURE spF_producto_one(
_CodigoProducto int)
BEGIN
SELECT
p.codigoProducto, p,nombre, p,precio, p.imagen
FROM producto p WHERE p.codigoProducto = _codigoProdcuto
ORDER BY P.nombre;
END;
CREATE PROCEDURE spF_venta_All()
BEGIN
SELECT
v.codigoVenta AS CodigoVenta,
v.cliente AS Cliente,
v.fecha AS Fecha,
d.codigoProducto AS CodigoProducto,
p.nombre AS Nombre,
p.precio AS Precio,
d.cantidad AS Cantidad,
d.descuento AS Descuento,
p.precio*d.cantidad AS Parcial,
((p.precio*d.cantidad)-d.descuento) AS Subtotal,
(
SELECT
SUM((dT.cantidad * pT.precio)-dT.descuento) AS TotalPagar
FROM
DetalleVenta AS dT INNER JOIN
Producto AS pT on dT.codigoProducto = pT.codigoProducto
WHERE
dT.codigoVenta=v.codigoVenta
) AS TotalPagar
FROM
Venta AS v INNER JOIN
DetalleVenta AS d ON v.codigoVenta = d.codigoVenta INNER JOIN
Producto AS p ON d.codigoProducto = p.codigoProducto
ORDER BY
CodigoVenta, Nombre
;
END;
CREATE PROCEDURE spF_venta_one(
_codigoVenta int)
BEGIN
SELECT
v.codigoVenta AS CodigoVenta,
v.cliente AS Cliente,
v.fecha AS Fecha,
d.codigoProducto AS CodigoProducto,
p.nombre AS Nombre,
p.precio AS Precio,
d.cantidad AS Cantidad,
d.descuento AS Descuento,
p.precio*d.cantidad AS Parcial,
((p.precio*d.cantidad)-d.descuento) AS Subtotal,
(
SELECT
SUM((dT.cantidad * pT.precio)-dT.descuento) AS TotalPagar
FROM
DetalleVenta AS dT INNER JOIN
Producto AS pT on dT.codigoProducto = pT.codigoProducto
WHERE
dT.codigoVenta=v.codigoVenta
) AS TotalPagar
FROM
Venta AS v INNER JOIN
DetalleVenta AS d ON v.codigoVenta = d.codigoVenta INNER JOIN
Producto AS p ON d.codigoProducto = p.codigoProducto
WHERE
v.codigoVenta=_codigoVenta
ORDER BY
Nombre
;
END;
CREATE PROCEDURE spF_ventas_All()
SELECT * FROM venta;
DROP PROCEDURE IF EXISTS spI_detalleventa;
CREATE PROCEDURE spI_detalleventa(
_codigoVenta int,
_codigoProducto int,
_cantidad decimal(18, 2),
_descuento decimal(18, 2)
)
BEGIN
INSERT INTO detalleventa(CodigoVenta, CodigoProducto, Cantidad, Descuento)
VALUES (_codigoVenta, _codigoProducto, _cantidad, _descuento);
END;
CREATE PROCEDURE spI_producto(
INOUT _codigoProducto int,
_nombre varchar (100),
_precio decimal (18, 2),
_imagen varchar (100)
)
BEGIN
SELECT IFNULL (MAX(CodigoProducto),0)+1 INTO _codigoProducto FROM producto;
INSERT INTO producto(
CodigoProducto, Nombre, Precio, Imagen)
VALUES (_codigoProducto, _nombre, _precio, _imagen);
END;
CREATE PROCEDURE spI_venta(
INOUT _codigoVenta int,
_cliente varchar (100)
)
BEGIN
SELECT IFNULL (MAX(CodigoVenta),0)+1 INTO _codigoVenta FROM venta;
INSERT INTO venta(
CodigoVenta, Cliente, Fecha)
VALUES (_codigoVenta, _cliente, _precio, CURDATE());
END;
CREATE PROCEDURE spU_producto(
_codigoProducto int,
_nombre varchar (100),
_precio decimal (18, 2)
)
BEGIN
UPDATE producto
SET
Nombre = _nombre, Precio = _precio
WHERE CodigoProdcuto = _codigoProducto;
END;
Valora esta pregunta


0