🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych
5 messages
5 total messages Started by Borneq Fri, 10 Jun 2016 19:20
[mySQL] szybki Insert danych pobranych przez Select
#194989
Author: Borneq
Date: Fri, 10 Jun 2016 19:20
30 lines
2043 bytes
Dam na przykładzie:
Mam transakcję 
c02770c2ff555c9f83c05f3424940a4bd1f20bae36bfd7faf2939a944fb7c206
warto zobaczyć na 
https://blockchain.info/tx/c02770c2ff555c9f83c05f3424940a4bd1f20bae36bfd7faf2939a944fb7c206
gdy nie będzie działało to na blockexplorerze.
Mam po jednej stronie transakcje input a po drugiej output.
Dla output mam adres i kwotę. Dla input nie mam kwoty i często też nie 
mam adresu, za to hasz poprzedniej transakcji i indeks output dla tej 
transakcji.
Więc dla output wstawiam
INSERT INTO transakcje(txHasz,Adres,Kwota, Index, toOutput)
(
"c02770c2ff555c9f83c05f3424940a4bd1f20bae36bfd7faf2939a944fb7c206",
"1H52UJA11ZAzhGY6nPAL3UuQc7gZ2pnDK6",
1721969,
0,
1
)
ale dla input muszę zrobić
SELECT txHasz,Adres,Kwota from transakcje WHERE 
thHash=a94d7b76b7adfc49f339a5477ffaf88a81967999832c9003cdfdc071a23aaf6b
and Index=662 and toOutput=1
a potem INSERT
To jednak strasznie długo trwa. Po pierwsze, normalnie dla Insert mogłem 
robić buforowanie i potem 100 rekordów jednocześnie wstawiać. A poza tym 
przy każdym wstawieniu select z setek milionów transakcji.


A czy można połączyć Insert z Selectem aby było szybciej?
Re: [mySQL] szybki Insert danych pobranych przez Select
#194990
Author: voy
Date: Fri, 10 Jun 2016 19:38
9 lines
1145 bytes
W dniu 2016-06-10 o 21:20, Borneq pisze:

 >
 > A czy można połączyć Insert z Selectem aby było szybciej?

Tak (14.2.5.1 INSERT ... SELECT Syntax).


Pozdr :)
Re: [mySQL] szybki Insert danych pobranych przez Select
#194991
Author: Borneq
Date: Fri, 10 Jun 2016 19:45
10 lines
1369 bytes
W dniu 10.06.2016 o 21:38, voy pisze:
> W dniu 2016-06-10 o 21:20, Borneq pisze:
>> A czy można połączyć Insert z Selectem aby było szybciej?
>
> Tak (14.2.5.1 INSERT ... SELECT Syntax).


http://dev.mysql.com/doc/refman/5.7/en/insert-select.html
Jak widzę, można nawet wiele wierszy wstawiać jednym insertem, ale jak 
wstawić insertem zarówno kolumny z selecta jak i własne kolumny?
Re: [mySQL] szybki Insert danych pobranych przez Select
#194992
Author: M.M.
Date: Sat, 11 Jun 2016 10:04
13 lines
2040 bytes
On Friday, June 10, 2016 at 9:45:43 PM UTC+2, Borneq wrote:
> W dniu 10.06.2016 o 21:38, voy pisze:
> > W dniu 2016-06-10 o 21:20, Borneq pisze:
> >> A czy można połączyć Insert z Selectem aby było szybciej?
> >
> > Tak (14.2.5.1 INSERT ... SELECT Syntax).
> 
> 
> http://dev.mysql.com/doc/refman/5.7/en/insert-select.html
> Jak widzę, można nawet wiele wierszy wstawiać jednym insertem, ale jak 
> wstawić insertem zarówno kolumny z selecta jak i własne kolumny?

własne dopisać w klauzuli select
Re: [mySQL] szybki Insert danych pobranych przez Select
#194993
Author: wloochacz
Date: Mon, 20 Jun 2016 14:33
15 lines
1665 bytes
W dniu 2016-06-10 o 21:45, Borneq pisze:
> Jak widzę, można nawet wiele wierszy wstawiać jednym insertem, ale jak
> wstawić insertem zarówno kolumny z selecta jak i własne kolumny?
Dodaj do SELECT własne kolumny i/lub wiersze.
To banał przecież...

insert into tabela1
Select
   *,
   'wlasna kolumna nr 1' as MyCustomCol1,
   'wlasna kolumna nr 2' as MyCustomCol2,
   from tabela2

-- 
wloochacz
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads