-
Notifications
You must be signed in to change notification settings - Fork 0
/
DESAFIO_TRANSACOES_BACKUPS_RECOVERY.txt
99 lines (85 loc) · 2.85 KB
/
DESAFIO_TRANSACOES_BACKUPS_RECOVERY.txt
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
---------------------------------------------------------------------------------------------------------------------------------------------------------
TRANSAÇÕES
---------------------------------------------------------------------------------------------------------------------------------------------------------
elect @@autocommit;
use ecommerce;
show tables;
-- setar o autocommit = off, ou false ou 0
set @@autocommit = false;
-- Transação 01:
start transaction;
-- Consulta
select PD.categoria,
sum(PP.quantidade) as Quantidade,
sum(PD.valor) as Valor,
sum(P.frete) as Frete,
sum(((PP.quantidade*PD.valor)+P.frete)) as 'Valor Total'
from
pedido P
left join
rel_produto_pedido PP
on P.idpedido = PP.P_idpedido
left join
produto PD
on PP.PD_idproduto = PD.idproduto
group by PD.categoria
order by 5;
COMMIT;
-- Transação 02:
/*Primiera Transação*/
Start transaction;
select
C.nome as Cliente,
P.descrição as Produto,
FP.tipo_pagamento as 'Forma de Pagamento',
P.status_pedido as 'Status do Pedido'
from
forma_pagamento FP
left join
pedido P
on P.idpedido = FP.idforma_pgt
left join
cliente C
on C.idcliente = P.C_idcliente
order by C.nome;
Commit;
/*Segunda Transação*/
Start transaction;
-- select orderNumbers as ID, orderStatus as Status, productCode as Product, price * 0,10 as Send_value from orders natural join ordersDetails;
update pedido set status_pedido = 'Entregue' where C_idcliente = 1;
commit;
---------------------------------------------------------------------------------------------------------------------------------------------------------
select @@autocommit;
use ecommerce;
show tables;
-- setar o autocommit = off, ou false ou 0
set @@autocommit = false;
-- Transação com Procedure:
-- Savepoint
savepoint insercao_pedido;
-- Transação
delimiter //
create procedure insercao_pedido_ecommerce()
begin
declare exit handler for sqlexception
begin
show errors limit 1;
rollback to savepoint insercao_pedido;
select 'A transação foi encerrada devido a algum erro ocorrido!' as Warning;
end;
start transaction;
insert into cliente(nome, CNPJ_CPF, endereço, Dnascimento, e_mail, telefone)
values('Natanael Oliveira','22967028509','Rua NO','1995-10-02','[email protected]','(55)8998-7539');
insert into pedido(status_pedido, descrição, frete, C_idcliente)
values('Pendente','Monitor Ultra Wide 4k LED','50.00','7');
select 'A transação foi salva com sucesso!' as Warning;
select
*
from
cliente C
left join
pedido P
on C.idcliente = P.C_idcliente;
end //
delimiter ;
call insercao_pedido_ecommerce();