Autor | Zpráva | ||
---|---|---|---|
tester Profil * |
#1 · Zasláno: 22. 5. 2016, 12:43:58
Pokud bych chtěl udělat export dat z mysql do sqlite - ne přímo do databáze, ale jako soubor .sql - a mám například dva sloupce, které oba jsou čísla, jaké mám možnosti?
Zatím vím jen o jedné INSERT INTO ... SELECT ... SELECT UNION ALL ... Přitom SELECT UNION ALL se opakuje pro každý další řádek. To viditelně zvyšuje velikost souboru. Tak se mi zdá že ukládání čísel takovým způsobem do souboru je dost neefektivní. Proto mě zajímá jestli existuje ještě jiná možnost kromě přímého zápisu do db? |
||
juriad Profil |
INSERT INTO tbl (col1, col2) VALUES (x1, y1), (x2, y2), (x3, y3), (x4, y4), ... Případně můžeš použít CSV: stackoverflow.com/a/1045961/4052811 www.sqlite.org/cli.html#section_8 |
||
tester Profil * |
#3 · Zasláno: 22. 5. 2016, 13:14:54
juriad:
Není to stejná syntaxe jako u Mysql? juriad Vyzkoušel jsem a dostal jsem toto: CREATE TABLE "a" ( "a" INTEGER, "b" INTEGER ) Žádné řádky. (0.045 s) Upravit, Export INSERT INTO "a" ("a", "b") VALUES (0, 1), (1, 2), (3, 4), (6, 5) Chyba v dotazu: near ",": syntax error Chyba v dotazu: 2 Platí ta syntaxe pro Sqlite 2? Já právě četl cosi že tato syntaxe nefunguje na starší verze. stackoverflow.com/questions/1609637/is-it-possible-to-insert-multiple-rows-at-a-time-in-an-sqlite-database/1734067#1734067 |
||
Jan Tvrdík Profil |
#4 · Zasláno: 22. 5. 2016, 13:17:31
tester:
A proč nepoužiješ sqllite 3? |
||
tester Profil * |
#5 · Zasláno: 22. 5. 2016, 15:16:09
Tak nic použiju SELECT UNION ALL
|
||
pcmanik Profil |
#6 · Zasláno: 23. 5. 2016, 13:10:41
tester:
S SQLite nerobim, ale zaujímalo by ma ako s dá SELECT-om vkladať nové riadky, to je mi novinka. A nieje jednoduchšie konečne výsť z toho tvojho sveta zastaralých verzií a updatovať? Odpadne ti s tým kopa problémov.... |
||
juriad Profil |
#7 · Zasláno: 23. 5. 2016, 14:23:11
pcmanik:
create table t(i int primary key, j int); insert into t select 1, 2 union all select 2, 3 union all select 3, 4; Starší verze uměly klauzulí VALUES vložit jen jeden řádek, proto se to muselo takto obcházet. web.archive.org/web/20070911175557/http://www.sqlite.org/lang_insert.html Výhodou jediného dotazu proti mnoha insertům je ten, že je to vše v rámci jedné transakce, indexy se upravují jen jednou a vše se ukládá na disk jen jednou. www.sqlite.org/faq.html#q19 |
||
Časová prodleva: 9 let
|
0