Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysql load data infile do kilku tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
darko
Witajcie !

Tym razem pytanie będzie dotyczyć ładowania danych bezpośrednio do tabel za pomocą konstrukcji load data infile . Rzecz nie byłaby skomplikowana gdyby chodziło o pojedynczą tabelę. Problem polega na tym, jak zaimportować dane z jednego pliku csv jednocześnie do kilku tabel (jednym zapytaniem sql)? Z tego wątku dowiedziałem się, że muszę użyć tyle razy LOAD DATA, do ilu tabel będę wstawiać dane. Z kolei, z tego postu wiem, jakie ustawienia powinna mieć baza danych. Dodam tylko, że tabele będą na silniku innodb, jak też myisam. Czy znacie sposób, aby zrobić takiego szybkiego inserta/update/delete bez konieczności przygotowywania wielu plików csv, dla każdej tabeli z osobna? Czy ma to w ogóle znaczenie czy zrobię to w jednym pliku i jednym zapytaniem czy kilkunastoma plikami i zapytaniami? Wolałbym jednym zapytaniem wstawić wszystkie dane, do ok. 30 tabel; same dane to dość spora pula produktów, import ma lecieć do Magento, jak najszybciej się da. Zapoznałem się wstępnie z Magmi i dziękuję z góry za posty prowadzące do tego rozszerzenia. *)


*)chyba, że faktycznie warto i nie ma innego (czyt. wydajniejszego) rozwiązania?
edit//
literowki
alegorn
samym load data tego nie zrobisz.

ale co z tego, odrobina wiecej pracy - i będzie dobrze.
importuj dane do tabeli zrodlowej
napisz sobie procedure ktora rozprowadzi dane po konkretnych tabelach.

caly import, czyli load data, takze bedzie ci wygodnie opakowac procedurą, jako paramert podając ścieżkę do pliku.

także cały proces da się uruchomić jednym poleceniem.


j.
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.