Autor Zpráva
David_
Profil *
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
a problém spočívá v čem?
David_
Profil *
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
kdyz budu chtit tim dotazem zapsat treba i davida bujnocha
INSERT INTO `jmeno_tabulky`(`jmeno`, `prijmeni`) VALUES ('petr', 'novak'), ('david', 'bujnoch');
David_
Profil *
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
manuál k mysql se netváří, že by tato obskurní syntaxe umožňovala vkládání více řádků zároveň
David_
Profil *
nj právě, proto jsem se ptal tady :-)

děkuju Ti moc za ochotu pomoci ;-)
TSD
Profil *
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 *
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 *
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
v cyklu:
$insert[] = '("$jmeno", "$prijmeni")';

pak

$sql = implode (', ', $insert);
Fido
Profil *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: