Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wlewanie danych do bazy, how to??
mattie
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.04.2006

Ostrzeżenie: (0%)
-----


Witam wszystkich serdecznie i na początek Wesołych Świąt:)

Mam pytanie.
Potrzebuje wlać do bazy danych dane z pliku tekstowego.
Problem w tym, że dane w pliku tekstowym mają taką postać:

Kod
1;1;1;"OWNER"
2;2;2;"OWNER"
3;3;2;"DISPONENT"

itd.

Tabela do której mam to wlać wygląda następująco:
  1. +--------+----------------------+------+-----+---------+-------+
  2. | FIELD | Type | NULL | KEY | DEFAULT | Extra |
  3. +--------+----------------------+------+-----+---------+-------+
  4. | idD | smallint(5) UNSIGNED | YES | | | |
  5. | idK | smallint(5) UNSIGNED | NO | PRI | 0 | |
  6. | nrR | smallint(5) UNSIGNED | NO | PRI | 0 | |
  7. | rodzaj | char(10) | NO | | | |
  8. +--------+----------------------+------+-----+---------+-------+


Problem jest następujący: potrzebuje tak spreparować dane aby wartość w cudzysłowach wlała sie do tabeli bez tych cydzysłowów.
Zastanawiam się teraz czy najpierw muszę tak wyedytować plik aby nie było tych cudzysłowów czy może da się to zrobić jakąś kombinacją w poleceniu LOAD DATA INFILE.
Plik z danymi jest ogromny więc ręczna edycja odpada. Myślę nad jakimś skryptem co to pozmienia ale najlepsze było by polecenie Mysql'a.

Za pomysły z góry dziękuję:)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mattie
post
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.04.2006

Ostrzeżenie: (0%)
-----


Właśnie podejrzewam,że problem leży właśnie w definicji tabeli. Podczas wpuszczania pliku txt do bazy niektóre kolumny tabeli były nie wypełniane i to chyba spowodowało ostrzeżenia. Plik był duży ponad milion wierszy. Sam zapis poszedł szybko tzn ok. 20s ale później przeprowadziłem konwersję z MyISAM do InnoDB i to trwało ponad godzinę. Zastanawiam się czy jesli przed zapisem danych od razu tablice ustawię na type=Innodb zaoszczedzę czas tworzenia bazy czy może spowoduje to wydłużenie czasu wlewania danych. Próbował ktoś może takiej sztuczki??(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 12:44