Portál AbcLinuxu, 10. listopadu 2025 11:50
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: 0
Ale 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:
. Děkuji za pochopení.
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.