Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie działa konkretne zapytanie z linii poleceń
Forum PHP.pl > Forum > Bazy danych > MySQL
Indoctrine
Witam

Mam pewien problem z wywołaniem jednej funkcji z linii poleceń pod Windows.

Otóż, potrzebuję, by do bazy okresowo zaczytywał się plik lokalny. Wiem, że nie da się tego zrobić eventem, bo LOAD DATA LOCAL INFILE produkuje komunikat, że tego się nie da zrobić w procedurach składowanych.
Chcę to rozwiązać od innej strony i zrobić po prostu na serwerku (Windows 2008 R2) zwykłego joba w task managerze.

Ze zwykłymi poleceniami działa to dobrze:

>mysql --user=pingwin --password=foka test --execute "SELECT * FROM ww;"

Ale gdy robię:

>mysql --user=pingwin --password=foka test --execute="LOAD DATA LOCAL INFILE '/TMSQL/export2.tsv' INTO TABLE test.table1 COLUMNS TERMINATED BY '"' IGNORE 1 LINES;"

Nie działa. Z linii poleceń jak to wpisuję, wyskakuje okno helpa mysql.exe tylko. Myślałem, że coś źle się kopiuje, ale zrobiłem na dwa kroki z wiersza poleceń:

>mysql --user=pingwin --password=foka test

mysql> LOAD DATA LOCAL INFILE '/TMSQL/export2.tsv' INTO TABLE test.table1 COLUMNS TERMINATED BY '"' IGNORE 1 LINES;

Na raty działa oczywiście bardzo ładnie.

Łączę to w całość:

>mysql --user=pingwin --password=foka test --execute="LOAD DATA LOCAL INFILE '/TMSQL/export2.tsv' INTO TABLE test.table1 COLUMNS TERMINATED BY '"' IGNORE 1 LINES;"

Nie chodzi, pojawia się listing helpa mysql...

Jakbym to robił ręcznie, to bez znaczenia, ale chcę w jednym kroku to zrobić z task managera...


Pyton_000
TERMINATED BY '"'
Tutaj zamykasz zapytanie z execute, przez co IGNORE 1 LINES;" trafia jako kolejny parametr komendy
Indoctrine
facepalmxd.gif

Ok, rzeczywiście. Sprawa okazała się banalna, dziękuję za zwrócenie uwagi smile.gif
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.