🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82447

Dwie bazy i ich kopia - postgresql

#82447
From: Bartek
Date: Sat, 17 Jan 2015 13:31
36 lines
2389 bytes
Witam
Jak najszybciej zrobić kopię bazy? Baza jest na postgresql 9.1.

Mam na serwerze utworzone dwie bazy
jedna nazywa się samochody1
druga nazywa się samochody2

Obie mają takie same tabele i pola w tych tabelach.
Baza samochody1 ma więcej wprowadzonych danych, a baza samochody2 ma mniej 
danych szczegółowych, ale więcej nazw samochodów, gdzie nazwa samochodu jest 
najważniejsza.
Jak najszybciej przekopiować dane z bazy samochody 1 do bazy samochody 2, 
jednocześnie nie tracąc nazw samochodów wprowadzonych już w bazie 2 tylko je 
uzupełniając.

Przyszło mi do głowy rozwiązanie takie.
Otwieram dwie bazy
odczytuje w bazie pierwszej tabele nr 1 i sprawdzam ile jest rekordów. 
następnie wszystkie rekordy kopiuje do bazy nr 2 do tabeli nr 1 (tworzę tu 
pętlę for I:=0 do ilość rekordów),  jednocześnie sprawdzając czy samochód o 
takiej nazwie już istnieje w tabeli nr 1 w bazie nr 2. Jeśli tak to go nie 
tworzę tylko uzupełniam.

I tak dla wszystkich tabel.

Nie wiem czy to dobre rozwiązanie, ale akurat to mi przyszło do głowy.
Tylko że mam 31 tabel i każda ma od 12 do 26 pól. Opisywanie tak każdego 
pola, kopiowanie go z jednej bazy do drugiej (bo rozumiem że musiałbym tu 
wszędzie wpisać FileName, dla wszystkich pól trochę by zabrało czasu.

Tak więc może jest jakiś inny sposób, szybszy?
Pozdrawiam
Bartek

P.S. Jeszcze mam do was pytanko na temat  robienia backapu bazy i jego 
odtwarzanie. Jak to zrobić z poziomu delphi? Używam komponentów ZEOS.
Technical Details
Message-ID: <m9doa7$ldi$1@news.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: "Bartek" <bglowacki@op.pl>
Newsgroups: pl.comp.lang.delphi.bazy-danych
Subject: Dwie bazy i ich kopia - postgresql
Date: Sat, 17 Jan 2015 14:31:08 +0100
Organization: ICM, Uniwersytet Warszawski
Lines: 43
Message-ID: <m9doa7$ldi$1@news.icm.edu.pl>
NNTP-Posting-Host: 165.88-199-145.vspace.pl
Mime-Version: 1.0
X-Trace: news.icm.edu.pl 1421501575 21938 88.199.145.165 (17 Jan 2015 13:32:55 GMT)
X-Complaints-To: usenet@news.icm.edu.pl
NNTP-Posting-Date: Sat, 17 Jan 2015 13:32:55 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit