mySQL problem s exportem dat

Ing. Miloslav Ponkrác postovni.holub na atlas.cz
Pondělí Červenec 9 20:30:09 CEST 2001


Dobrý den,

>Snazim se dostat z mySQL serveru vypis vsech zaznamu v tabulce email:
>select email into outfile "emaily.txt" from Zakaznici;
>
>Prikaz funguje vyborne, a dela presne to, co po nem chci, ale pouze jednou.
>Kdyz jej spustim podruhe, tak mi nahlasi, ze soubor "emaily.txt" jiz
>existuje. Dival jsem se do manualu, ale nenasel jsem, jak mySQL donutit,
aby
>ten soubor prepsal.
>Ma nekdo nejaky napad?


Na Vašem místě bych používal pro opakované použití:

mysqldump --tab > emaily.txt

nebo

mysql -e "select * from email" > emaily.txt

>Tusim, ze tohle se stava, pokud MySQL bezi se spatne nastavenou
>umaskou. Tusim se to resilo pridanim volani umask 066 do
>startovaciho scriptu.

To je samozřejmě blbost. V manuálu pro MySQL se jasně píše, že pokud
použijete konstrukci SELECT ... INTO OUTFILE filename, tak cílový soubor
_nesmí_existovat_jinak_dojde_k_chybě! Stačí číst ten "fucking manual"
(vypůjčeno z RTFM). Takže pokud se pan Tomáš Vida díval do manuálu, tak asi
jen na desky a manuál zapomněl otevřít. Je to tam totiž dost jasně a přímo
napsáno, ani hledat se to nemusí.

Tedy jedná se o normální zdokumentovanou feature, a nikoli chybu. Koneckonců
konstrukce SELECT INTO OUTFILE není nejspíše určeno pro rutiní používání,
ale pro ruční exporty dat.

S pozdravem

Miloslav Ponkrác





Další informace o konferenci Linux