skopiowanie danych miedzy tabelami

skopiowanie danych miedzy tabelami
Anna Nowak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Witam,

Mam tabele z danymi za rok 2018 i mam druga tabele z danymi za rok 2019 ( obie maja te sama strukture.
Teraz che skopiować dane z tabeli 2018 do tabeli 2019

czy odpowiednie będzie polecenie SELECT * INTO nowa_nazwa_tabeli FROM nazwa_tabeli

czy to mi nie nadpisze danych za 2019?

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5555
2

Jeśli dobrze rozumiem dokumentacje PostgreSQLa to SELECT INTO tworzy nową tabelę, a Ty potrzebujesz INSERT INTO SELECT

Np:

Kopiuj
INSERT INTO rok2019 SELECT * FROM rok2018;
Delor
  • Rejestracja: dni
  • Ostatnio: dni
0

Jednorazowo potrzebujesz wszystkich danych czy na stałe? Może wystarczy UNION?

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
0

Jak baza? Jak masz jakieś id w obydwu tabelach i jest na nim uniq to ci może nie puścić, bo pewnie są powielone w dwóch tabelach.

Anna Nowak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Baza jest ms SQL
Potrzebuje uzupełnić tabele danymi z innej tabeli
Jak zrobic to najprosciej

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
1

Wszystko zależy jak te dane wyglądają.
najprościej tak:

Kopiuj
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition; 
Anna Nowak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

tylko czy wykonujac to nie strace obecnych danych?
Chce dokopiowac dane do juz istniejacych.
Nie wiem jak to działa czy mi nie nadpisze danych

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
0

Insert nie nadpisuj danych. Pytanie, czy będziesz umieć zidentyfikować właściwie wiersze po takim połączeniu. Zrób sobie kopie tabeli, zanim zrobisz taki ruch, żeby można było przywrócić ewentualnie poprawny stan bazy.

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
0

Wszystkich tych ruchów by nie trzeba było, gdybyś projektując bazę tego nie zepsuł. Tak się nie robi.

Anna Nowak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

AnyKtokolwiek nie rozumiem o co CI chodzi. Chyba nie zrozumiałeś!
Baza 2018 była na jednym serwerze a 2019 na drugim.
Teraz jest inny serwer i chce obie bazy miec w jednej bazie. Obie bazy maja identyczne kolumny.
Wiec nie rozumie o co CI chodzi

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
1
Anna Nowak napisał(a):

AnyKtokolwiek nie rozumiem o co CI chodzi. Chyba nie zrozumiałeś!
Baza 2018 była na jednym serwerze a 2019 na drugim.
Teraz jest inny serwer i chce obie bazy miec w jednej bazie. Obie bazy maja identyczne kolumny.
Wiec nie rozumie o co CI chodzi

ze wzajemnością. Mówisz raz o tabeli, raz o bazie

Anna Nowak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

chodzi mi o baze
jak skopiować dane z jednej bazy do drugiej

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
1

Jak będziesz mniej-więcej rozumieć co to jest klucz pierwotny i obcy, przyjdź.
A zanim to nastąpi, znajdź kogoś, kto oceni te bazy, popatrzy itd ... i daj mu zrobić

BlackBad
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 454
0

Ale czemu Ty w kółko pytasz o to samo jak już co najmniej w 3 postach dostałaś odpowiedź ? Spróbowałaś chociaż tego ?

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
3

BAZA TO NIE TABELA!!!! Baza ma zazwyczaj kilkadziesiąt do kilkatysięcy tabel. W 99% przypadków nie da się po prostu wziąć danych z roku x oraz x-1 i "połączyć" bo są dane, które są wspólne (np. kontrahenci lub towary) ale mają inne ID albo dane, które nie są wspólne ale mają takie samo ID (np. faktury) i tego nie przeskoczysz bez porządnej analizy tych danych. Sytuacja jest, teoretycznie, znacznie prostsza jeśli mówimy tylko o JEDNEJ TABELI bo tam można po prostu dodać "starsze" dane i tyle.

GS
  • Rejestracja: dni
  • Ostatnio: dni
0
Anna Nowak napisał(a):

chodzi mi o baze
jak skopiować dane z jednej bazy do drugiej

Jeśli oczekujesz że dostaniesz prostą odpowiedź w kilku punktach że należy wykonać to tak i tak to nie dostaniesz takiej odpowiedzi, bo taka ogólna odpowiedź na tak ogólne pytanie nie istnieje . Wszystko zależy od budowy bazy,logiki zależności pomiędzy tabelami, ograniczeń, unikatów danych, kluczy... jest tego sporo.
Gdybyś po pokazała schemat bazy to można by próbować cokolwiek odpowiedzieć

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
0

Kopiowanie miedzy bazami w mssql jest proste:

Kopiuj
--skrypt na danych 2019 roku
insert into tabela
select * from baza2018.dbo.tabela

dane zostaną dopisane, ale przeczytaj uważnie post @abrakadaber bo to w praktyce może okazać się trudniejsze

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.