Temat: Archiwizacja danych
Mam do dyspozycji dwie table.Dla 170 tysięcy rekordów muszę z tabeli A przenieść dane do tabeli B za konkretny okres czasu.
Przy jednoczesnym usunięciu danych z tabeli A. Czy ktoś byłby mi w stanie pomóc?
Grzegorz D. PL/SQL Developer
insert into tabelaB
select *
from tabelaA
where kolumna_z_data between data_od and data_do;
delete
from tabelaA
where kolumna_z_data between data_od and data_do;
commit;
Ten post został edytowany przez Autora dnia 11.10.17 o godzinie 22:08
-- utwórz tabelę pośrednią
create table tabelaC as
select *
from tabelaA
where kolumna_z_data between data_od and data_do;
-- dodaj dane do tabeli B
insert into tabelaB
select * from tabelaC;
-- usuń dane z tabeli A
delete
from tabelaA
where id in (select id from tabelaC);
-- zatwierdź transackję gdy wszystko poszło ok
commit;
-- usuń tabelę gdy niepotrzebna
drop table tabelaC;
Sebastian
Wroni
Account Manager,
Własna działaność
Następna dyskusja: