2012-03-16 15 views
20

Mam CSV, który wygląda tak,importu CSV do phpMyAdmin

candidate_id,show_on_site,first_name,surname,gender,DOB,showdob,Location,height,eyes,hair_colour,hair_length,accents,unions,training,url,visible,availability 
,26,urban talent,Strawberry,Shortcake,Female,11 Jan 1942,FALSE,Manchester,5'2,Brown,Black,Mid-length,Native Lancashire,Equity,Urban Talent TV & Drama Workshops,Strawberry-Shortcake---5.4.06.jpg,Yes,Yes 
,29,urban talent,Rainbow,Brite,Female,12 Oct 1970,FALSE,Manchester,5'7,Brown,Dark Brown,Long,"Native Manchester, others include - Cheshire, RP, Patois, Standard USA",Equity Member,"BA Acting Studies, Arden School of Theatre<br>Urban Talent TV & Drama Workshops",Rainbow Brite 1_1.jpg,Yes,Yes 
,31,urban talent,Webbigail,Vanderquack,Female,4 Jun 1947,FALSE,Manchester,5'0,Hazel,Blonde,Mid-length,"Native Manchester, others include - Liverpool, Cockney, Birmingham, West Country, Standard Scottish, Standard Welch, S Irish",,Manchester School of Acting<br>3 Years at David Johnson Acting Workshops,Webbigail Vanderquack web 1.jpg,Yes,Yes 
,33,urban talent,Smurfette,Smurf,Female,1 Jul 1979,FALSE,Manchester,5'2,Dark Brown,Dark Brown,Long,"Native Manchester, others include - Liverpool, RP, Lancashire, Birmingham, Cockney, Devon, Geordie, West Country, Glasgow, Edinburgh, South African, Standard & Southern US, Persian, Asian, Indian ~ good ear for accents",,"Manchester School of Acting, with Mark Hudson<br>North Cheshire Theatre College, with David Johnson<Oldham Theatre Workshop",Smurfette Smurf web 4.jpg,Yes,Yes 

to możliwe, aby po prostu wstawić te dane do istniejących kolumn w mojej bazy danych, wszystko co mogę wydaje się to wstawić go jako nowa tabela, która ma kolumny A, B, C, D, E itd.

Odpowiedz

4

Przy pomocy instrukcji SQL można zaimportować plik CSV, ale nie można aktualizować danych. Istnieje jednak sztuczka, której możesz użyć.

  • Utwórz kolejną tabeli tymczasowej do wykorzystania dla przywozu
  • załadować na tym stole z CSC

    LOAD DATA LOCAL INFILE '/file.csv' 
    INTO TABLE temp_table 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\n' 
    (field1, field2, field3); 
    
  • UPDATE prawdziwy stół łączenia stołowi

    UPDATE maintable 
    INNER JOIN temp_table A USING (field1) 
    SET maintable.field1 = temp_table.field1 
    
35

W phpMyAdmin, kliknij tabelę, a następnie cl ick kartę Importuj u góry strony.

Przeglądaj i otwórz plik csv. Pozostaw zestaw znaków bez zmian. Usuń zaznaczenie częściowego importu, chyba że masz OGROMNY zestaw danych (lub wolny serwer). Format powinien już mieć wybrane "CSV" po wybraniu pliku, jeśli nie, wybierz go (nie używając DANYCH LOAD). Jeśli chcesz wyczyścić całą tabelę przed importowaniem, zaznacz "Zastąp dane tabeli plikiem". Opcjonalnie zaznacz "Ignoruj ​​duplikaty wierszy", jeśli uważasz, że masz duplikaty w pliku CSV. Teraz ważna część, ustawić kolejne cztery pola do tych wartości:

Fields terminated by: , 
Fields enclosed by: “ 
Fields escaped by: \ 
Lines terminated by: auto 

Obecnie te pasują do ustawień domyślnych za wyjątkiem „Fields zakończona”, która domyślnie średnikiem.

Teraz kliknij przycisk Idź i powinien działać poprawnie.

+0

Nie jestem fanem brzmienia do usuwania zduplikowanych wierszy. "Ignoruj ​​zduplikowane wiersze" można interpretować jako nie robiąc nic w duplikatach wierszy (tj. Ignorując je), co powoduje, że są one dodawane do tabeli. Dziękuję za wyjaśnienie, co właściwie robią. – Dennis

+0

działa idealnie ... dzięki .. –

+0

musiał zmienić 'Pola zakończone przez:,' do: 'Pola zakończone przez:;' –

1

Dzieje się tak ze względu na id (brak automatycznego braku inkrementacji). Jeśli edytujesz je w edytorze tekstu, dodając przecinek do pola ID, zostanie to rozwiązane.

3

W phpMyAdmin v.4.6.5.2 istnieje opcja wyboru „Pierwszy wiersz pliku zawiera nazwy kolumn tabeli ....”:

enter image description here

0

ja nie jestem fanem phpmyadmina. Używam zamiast tego SQLyog. Trzeba tylko wybrać tabelę w Object Browser (Ctrl + SHift + 1). Po prostu wybierz Tabela> Importuj> Importuj dane CSV za pomocą polecenia Załaduj lokalnie (Ctrl + Shift + M).

enter image description here