-
Notifications
You must be signed in to change notification settings - Fork 0
/
cte_modificacion.sql
72 lines (59 loc) · 1.76 KB
/
cte_modificacion.sql
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
CREATE TABLE producto_2(
id serial not null primary key,
nombre varchar(50) not null
);
create table producto_log(
id int,
nombre varchar(50),
fecha_cambio timestamp default now()
);
insert into producto_2 (nombre) values
('Mandarina'),('Agua'),('Laptop'),('TV'),('Celular');
select * from producto_2;
select * from producto_2 where nombre ilike '%v'
with prod_elim as (
delete from producto_2 where nombre ilike '%lar'
returning *
)
insert into producto_log (id,nombre)
select * from prod_elim
select * from producto_log
select * from producto_2 where nombre ilike '%lar'
alter table producto_2 add column precio numeric(14,2) default 0;
select * from producto_2
with t as (
update producto_2 set precio = (id*1.15) + precio
returning *
)
--select * from producto_2
select * from t
----Agregar al log, el tipo y el precio
alter table producto_log add column precio numeric(14,2) default 0;
alter table producto_log add column tipo char(1) default '';
with prod_elim as (
delete from producto_2 where nombre ilike '%lar'
returning *
)
insert into producto_log (id,nombre,precio,tipo)
select id,nombre,precio,'B' from prod_elim
select * from producto_log
---Actualizar
with t as (
update producto_2 set precio = (id*1.15) + precio
--update producto_2 set nombre='Portatiles' where id=3
returning *
)
insert into producto_log (id,nombre,precio,tipo)
select id,nombre,precio,'A' from producto_2
where id in (select id from t)
select * from producto_2
select * from producto_log order by 3 desc
--Insert
select * from producto_2 order by 1 desc
select * from producto_log order by 3 desc
with t as (
insert into producto_2 (nombre,precio) values('Marcador',3),('Mouse',0.5)
returning *
)
insert into producto_log (id,nombre,precio,tipo)
select id,nombre,precio,'I' from t