Portál AbcLinuxu, 7. května 2025 10:38
mysql> LOAD DATA INFILE "/home/her-ur/p4.txt" REPLACE \ -> INTO TABLE user \ -> (data_celkem); Query OK, 8 rows affected (0.07 sec) Records: 4 Deleted: 4 Skipped: 0 Warnings: 0Ale vytvori se mi novy radek a ke vsemu se vlozi pouze posledni cislo ze souboru. Co delam blbe, aby se mi vlozily vsechna cisla do sloupce od zacatku az do konce?
Řešení dotazu:
cat soubor.txt | awk '{print "INSERT INTO tabulka (sloupec) VALUES ("$0");"}' | mysql(za předpokladu, že v tom souboru jsou skutečně čísla – jak píšeš – a ne nějaké blbosti, které by ti narušily SQL dotaz) Akorát je problém, že si asi relační databázi představuješ jako sešit v tabulkovém kalkulátoru – takhle to opravdu není. Tabulka v databázi je množina záznamů a na jejich pořadí se nelze spoléhat. Nemůžeš proto vedle těch „dvou sloupečků“ nasypat ještě jeden třetí ze souboru – musíš vědět, ke kterým záznamům ty nové hodnoty patří a pak provést příslušné UPDATE příkazy.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.