Autor | Zpráva | ||
---|---|---|---|
David_ Profil * |
#1 · Zasláno: 21. 4. 2008, 19:01:46
zdravím,
potřebuji vložit do databáze větší množství položek (okolo 25tisíc) a tak by bylo velmi nepraktické a pomalé, to vkládat jednotlivé, chtěl bych to tedy vložit pomoci jednoho dotazu, pomocí INSERT INTO .... SET ... Díky za radu |
||
nightfish Profil |
#2 · Zasláno: 21. 4. 2008, 19:08:00
a problém spočívá v čem?
|
||
David_ Profil * |
#3 · Zasláno: 21. 4. 2008, 19:11:40
aha jo :-D
zapomel jsem ze nevim jak to mam zapsat - treba chci zapsat jmeno a prijmeni INSERT INTO jmeno_tabulky SET jmeno = "petr", prijmeni = "novak"; kdyz budu chtit tim dotazem zapsat treba i davida bujnocha v jednom dotazu, tak to napisu jak? |
||
nightfish Profil |
#4 · Zasláno: 21. 4. 2008, 19:16:11
kdyz budu chtit tim dotazem zapsat treba i davida bujnocha
INSERT INTO `jmeno_tabulky`(`jmeno`, `prijmeni`) VALUES ('petr', 'novak'), ('david', 'bujnoch'); |
||
David_ Profil * |
#5 · Zasláno: 21. 4. 2008, 19:19:42
jj, ale ja bych chtel pomoci SET cili treba
INSERT INTO 'jmeno_tabulky' SET (jmeno = 'petr', prijmeni = 'novak'), (jmeno = 'david', prijmeni = 'bujnoch'); - toto ale nefunguje |
||
nightfish Profil |
#6 · Zasláno: 21. 4. 2008, 19:22:44
manuál k mysql se netváří, že by tato obskurní syntaxe umožňovala vkládání více řádků zároveň
|
||
David_ Profil * |
#7 · Zasláno: 21. 4. 2008, 19:25:30
nj právě, proto jsem se ptal tady :-)
děkuju Ti moc za ochotu pomoci ;-) |
||
TSD Profil * |
#8 · Zasláno: 21. 4. 2008, 19:29:33
Jen bych si dal pozor na to, že 25 tisíc Davidů Bujnochů = 25.000x23 znaků, což už je jako jeden INSERT docela dost. Než abych po nějakém případném problému řešil, co v db ještě je a co už ne, tak bych možná ty lidi vkládal řekněme po dvaceti. Ale možná se pletu a mysql jeden insert o půl miliónu znacích mysql slupne jak malinu.
|
||
TSD Profil * |
#9 · Zasláno: 21. 4. 2008, 19:31:07
ohledně syntaxe: když si nejsem jist syntaxí, vlořím dva Bujnochy ručně přes www rozhraní a pak kuknu na výpis a tam vidím syntaxi.
|
||
David_ Profil * |
#10 · Zasláno: 21. 4. 2008, 20:32:16
TSD:
já jsem uvedl jména jenom pro názornost, budou se tam ukládat úplně jiné údaje :-) Jinak už mi to funguje pomocí INSERT INTO ... VALUES Problém teď nastal při vkládání mám nastavenou promennou tridy $insert = 'INSERT INTO "jmeno_tabulky" (jmeno, prijmeni) VALUES '; pak v cyklu volam metodu ktera pripisuje: $insert .= '("$jmeno", "$prijmeni") ,'; - momentálně vymýšlím co nejelegantnější řešení, aby se při posledním průchodu cyklem nenapsala ta končící čárka, a nebo se následně odstranila... Máte někdo tip? |
||
ninja Profil |
#11 · Zasláno: 21. 4. 2008, 21:17:29
v cyklu:
$insert[] = '("$jmeno", "$prijmeni")'; pak $sql = implode (', ', $insert); |
||
Časová prodleva: 2 měsíce
|
|||
Fido Profil * |
#12 · Zasláno: 8. 6. 2008, 19:02:24
Ahoj, vidím, že tu řešíte něco podobného co potřebuji já. Uvedu:
řekněme že mám DB1 a v ní tabulky s prefixem 1až N. Pak mám DB2 a v ní v jedné tabulce seznam prefixů tabulek z DB1. A potřebuji z DB1 co nejelegantněji přesunout tabulky s prefixem 1 až N do samostatných DB s názvem prefixu tabulek z DB1. Zkoušel jsem to pomocí DBA v MYSQL a příkuzu: SET @promena:='prefix'; a následného CREATE DATABASE @promena; ale nevím, jak do mé proměnné @promena dostat seznam prefixů tabulek 1 až N z DB1 (potažmo výsledek selectu na seznam prefixů tabulek DB1 z DB2). Již jsem googlil, ale zatím mi vypadlo asi 300 odkazů na různé kurzy MYSQL, které však jen zmíní příkaz DBA "SET @a:=promenna;" ale už neuvedou další syntaxi. Nebo jsou většinou velmi zcestné. Poradil by mi prosím někdo? Moje ICQ šest šest tři tři jedna jedna jedna nula. |
||
Časová prodleva: 16 let
|
0