Pafio
7.08.2014, 11:33:05
Witam,
mam tabelę którą 2 razy dziennie oprózniam i importuje do niej 3 pliki csv (oddzielone średnikami), dane w plikach mają nagłówki. Domyślne opcje importu w phpMyAdmin dla pliku csv to: separator -przecinek, i "Liczba wierszy, by pominąć, począwszy od pierwszego wiersza" - zero.
Aby przyspieszyć import udało mi sie zmienić domyślny format pliku do importu na csv, oraz domyślny separator w polu "Kolumny oddzielone" na srednik.
Nie mogę jednak znaleźć opcji aby zmienić wartość domyślną w polu:
"Liczba wierszy, by pominąć, począwszy od pierwszego wiersza" . Tu domyślne jest 0, a chciałbym żeby było 1 ze względu na nagłówki w moich plikach csv
Czy da sie w jakiś sposób zmienić tę opcję ( np. edytując my.ini) ?
Shrapnel
9.08.2014, 14:15:14
A po co edytować? Po mojemu to zwyczajnie:
LOAD DATA INFILE 'C:\\Users/twoja_sciezka/forum.csv' INTO TABLE `forum` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES (twoje_zmienne);
Powodzenia, daj znać czy działa.
Pafio
11.08.2014, 08:41:25
Działa i łyka wszystkie 3 pliki na raz:
LOAD DATA INFILE '\aw.csv' INTO TABLE `table 27` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES ;
LOAD DATA INFILE '\sm.csv' INTO TABLE `table 27` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES ;
LOAD DATA INFILE '\ex.csv' INTO TABLE `table 27` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES ;
dzięki, teraz szukam jakiegoś kontenera, żeby uruchamiać te zapytania dwuklikiem (te i kolejne moje, działające w tej chwili w postaci zapytań i tworzenia widoków, następnie kolejne zapytanie odnoszace się do utworzonego widoku i tworzenie nowego, wynikowego.
Zdecyduje się chyba na pare -plik php(z poziomu php tylko połączenie z bazą, następnie zapytania sql), oraz bat uruchamiający wykonanie pliku php w interpretorze (php for windows). Chodzi o to żeby koledzy z działu mogli robić raport w przypadku mojej nieobecności na swoich kompach zainstaluje im tylko php for windows, który niewiele waży.
Php liznałem tylko podstawy, masz moze jakiegoś gotowca?
Pyton_000
11.08.2014, 09:13:29
Wystarczy że wrzucisz wszystkie zapytania do pliku SQL i odpalisz mysql z wiersza poleceń
W linuksie wystarczy
Kod
mysql -u user -p pass < plik.sql
Pafio
12.08.2014, 10:01:51
Super, stworzyłem plik wsadowy, który łączy się z bazą i odpala zapytania zawarte w pliku sql. Po dodaniu ścieżki do katalogu bin do zmiennej środowiskowej path, można go odpalac z dowolnego folderu. Dane sa importowane obliczenia dokonują się jak poprzednio w postaci zapytanie-widok, jak poprzednio w związku z czym muszę teraz tylko tylko eksportować dane z ostatniego widoku do pliku csv.
Stworzyłem takie zapytanie:
SELECT `a`, `b`, `c`, `d`, `e` FROM `dane` INTO OUTFILE 'C:\\sql/RAPORT/raport.csv' FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n' ;
i tu mam problem bo w polach które są puste pojawia sie /N , a wolałbym zeby były puste. Eksportując ręcznie przez phpmyadmin pola te były wypełnione wartościa null jednak była tam opcja "Zamień null na : "
zostawiałem to pole puste i miałem plik jaki chciałem.
Jak bym nie kombinował z separatorami i zakończeniami linii to zawsze w pustych polach jest /n albo wszystkie dane są w jednej linijce.
HELP
Pyton_000
12.08.2014, 11:22:51
doda
FIELDS ESCAPED BY '""'
Pafio
13.08.2014, 07:28:57
Pokazuje się błąd:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'' at line 1
FIELDS ESCAPED BY '""' - wydaje się ze nie może być dwóch cudzysłowów - #1083 - Field separator argument is not what is expected; check the manual
dobra, koniec zabawy z ustawianiami csv,
rozwiązałem problem inaczej, napisałem dodatkowe zapytanie, użyłem IFNULL, pozbyłem się tych wartosci, teraz eksportuje dobrze
dzięki wszystkim za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.