Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PostgreSQL] Dodawanie wielu rekordow
Pucy
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 8.05.2006

Ostrzeżenie: (0%)
-----


Problem polega na tym ze chcialbym dodac w 1 zapytaniu n-rekordow;

w mysql: "INSERT INTO db(id,nazwa) VALUES ('2','xxx'),('3','ttt'),('5','uuuu')"; - dziala

jak osiagnac identyczny rezultac w postgresie? Czy jedynym rozwiazaniem jest tworzeni np. 10 tys zapytan? Bo o tym mowa...
Go to the top of the page
+Quote Post
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Musisz utworzyć 10 zapytań. Jak dobrze pamiętam to w wersji 8.2 ma być taka możliwość jak opisałeś.
Go to the top of the page
+Quote Post
Adiasz
post
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 28.02.2004

Ostrzeżenie: (0%)
-----


Jezeli musisz wrzucic duzo insertow do bazy danych to duzo szybciej (pretkosc rosnie wykladniczo przy coraz wiekszej ilosci inertow) od INSERT dziala \copy z stdin
Przydaje sie to gdy przenosisz bazy, z tym ze w pg_dump musi byc bez opcji d i D
Go to the top of the page
+Quote Post
Pucy
post
Post #4





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 8.05.2006

Ostrzeżenie: (0%)
-----


Musicie mowic prosciej co to " \copy z stdin" i o jakie opcje chodzi? Duza ilosc zapytan, mowie o 10,20,50 tysiacach dodanych rekordow

Adiasz ale ja ta predkosc ma rosnac? psql wie ze dodaje kolejno w krotkim czasie nastepne insertu i na podstawie tego przyspiesza ich dodawanie. Ale musze wiec sprobowac z osobnymi zapytaniami. Wiem ze przy 10 tysiacach w mysql dodawalem ok 40 sekund... zobacze jak to w psql wyglada

Ten post edytował Pucy 24.08.2006, 23:52:06
Go to the top of the page
+Quote Post
Adiasz
post
Post #5





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 28.02.2004

Ostrzeżenie: (0%)
-----


W sumie nie wiem dlaczego dziala to szybciej, ale dziala i to znacznie.
>> manual

Kilkadziesac tysiecy to nie jest duzo (jak dla kogo oczywoscie) dla mnie duza baza to powiedzmy 2m rekordow.
Go to the top of the page
+Quote Post
Pucy
post
Post #6





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 8.05.2006

Ostrzeżenie: (0%)
-----


Hm, no w sumie, przeciez dodanie na raz ( w moim mniemaniu) to to samo co np przeniesienie bazy, a przeniesienie z 2m rekordow to oj oj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dobra, wiec pojedynczymi insertami... bo w sumei ten efekt to tylko jednorazowy, ale chcialem wiedziec czy da sie zoptymalizowac dodawanie
Go to the top of the page
+Quote Post
woolfik
post
Post #7





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 22.11.2008

Ostrzeżenie: (0%)
-----


No to mam pytanie mam plik wlasnie gdzie sa bloki copy i mam np taki blok:
COPY umowy (idx_umowy, numer_umowy, idx_zakladu, lp, przedmiot_umowy, data_od, data_do) FROM stdin;
32 WWE123 10 100 BG - 12A Z 2007-01-01 2007-12-31
33 000/0A12 10 100 BZ - 12B Z 2007-01-01 2007-02-28
34 AB-WA00 10 100 BG - 11A Z 2001-01-01 2003-04-11
35 2009\9\\13 10 100 CZ - 13A Z 2007-01-01 2007-12-31
36 X11-AA 12 100 CZ - TZ 2007-01-01 2007-12-31
37 000/0A12 12 100 DZ - TZ 2008-01-01 2008-12-31
38 AB-WA00 12 100 EZ - TZ 2009-01-01 2007-12-31
39 2009\5\\22 12 100 DZ - TZ 2007-01-01 \N
40 000/1 15 100 Op. Zdr Basic 2008-03-01 \N
41 000/2 15 100 Op. Zdr Basic \N 2009-05-12
42 000/3 16 100 Op. Zdr Basic 2007-01-01 2007-12-31
\.

No i niestety baza zwraca query OK ale nie dodaje mi zadnego rekordu do bazy ... tabela jest dalej pusta ... mozecie cos doradzic (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 16:09