Apa cara terbaik / tercepat untuk mengupload file csv ke tabel mysql? Saya ingin baris pertama data digunakan sebagai nama kolom.
Menemukan ini:
Bagaimana cara mengimpor file CSV ke tabel MySQL
Tetapi satu-satunya jawaban adalah menggunakan GUI dan bukan shell?
Jawaban:
Alih-alih menulis skrip untuk menarik informasi dari file CSV, Anda dapat menautkan MYSQL secara langsung ke sana dan mengunggah informasi menggunakan sintaks SQL berikut.
Untuk mengimpor file Excel ke MySQL, ekspor dulu sebagai file CSV. Hapus header CSV dari file CSV yang dihasilkan bersama dengan data kosong yang mungkin diletakkan Excel di akhir file CSV.
Anda kemudian dapat mengimpornya ke dalam tabel MySQL dengan menjalankan:
as read on: Impor file CSV langsung ke MySQL
EDIT
Untuk kasus Anda, Anda harus menulis juru bahasa terlebih dahulu, untuk menemukan baris pertama, dan menetapkannya sebagai nama kolom.
EDIT-2
Dari dokumen MySQL tentang
LOAD DATA
sintaks :Oleh karena itu, Anda dapat menggunakan pernyataan berikut:
sumber
IGNORE 1 LINES
ke kueriBerikut ini skrip baris perintah PHP sederhana yang akan melakukan apa yang Anda butuhkan:
Ini akan membuat tabel berdasarkan baris pertama dan mengimpor baris yang tersisa ke dalamnya. Berikut adalah sintaks baris perintah:
sumber
fields terminated by ','
... bahkan bekerja dengan CSV yang dikutip ganda.ENCLOSED BY '\"'
... juga, banyak orang akan membutuhkanLINES TERMINATED BY '\r\n'
jika menggunakan CSV dari Windows. Dan terakhir, menghindari nama lapangan dengan backticks adalah bijaksana jika ada spasi:$columns .= "`$column` varchar(250)";
jika Anda memiliki kemampuan untuk menginstal phpadmin ada bagian impor di mana Anda dapat mengimpor file csv ke database Anda bahkan ada kotak centang untuk mengatur header ke baris pertama file yang berisi nama kolom tabel (jika ini tidak dicentang, baris pertama akan menjadi bagian dari data
sumber
Pertama buat tabel di database dengan jumlah kolom yang sama yang ada di file csv.
Kemudian gunakan kueri berikut
sumber
Untuk memuat data dari file teks atau file csv perintahnya adalah
Dalam perintah di atas, dalam kasus saya hanya ada satu kolom yang akan dimuat sehingga tidak ada "diakhiri oleh" dan "dilingkupi oleh" jadi saya membiarkannya kosong kalau tidak programmer dapat memasukkan karakter pemisah. untuk mis. , (koma) atau "atau; atau apapun.
** untuk orang yang menggunakan mysql versi 5 ke atas **
Sebelum memuat file ke mysql harus memastikan bahwa baris derek di bawah ditambahkan di samping
etc/mysql/my.cnf
untuk mengedit perintah my.cnf adalah
sudo vi /etc/mysql/my.cnf
sumber
Jika Anda memulai mysql sebagai "mysql -u -p --local-infile", ini akan berfungsi dengan baik
sumber
Saya menulis beberapa kode untuk melakukan ini, saya akan memasukkan beberapa cuplikan:
Kemudian dapatkan header CSV sehingga Anda dapat memberi tahu mysql cara mengimpor (catatan: pastikan kolom mysql Anda sama persis dengan kolom csv):
Kemudian kirim kueri Anda ke server mysql:
sumber
Saya bergumul dengan ini untuk beberapa waktu. Masalahnya bukan terletak pada bagaimana memuat data, tetapi bagaimana membangun tabel untuk menampungnya. Anda harus membuat pernyataan DDL untuk membuat tabel sebelum mengimpor data.
Sangat sulit jika tabel memiliki banyak kolom.
Berikut skrip python yang (hampir) melakukan pekerjaan itu:
Masalah yang harus dipecahkan adalah bahwa deklarasi nama kolom dan tipe data terakhir diakhiri dengan koma, dan parser mySQL tidak akan mentolerirnya.
Tentu saja ia juga memiliki masalah karena ia menggunakan tipe data TEXT untuk setiap bidang. Jika tabel memiliki beberapa ratus kolom, maka VARCHAR (64) akan membuat tabel menjadi terlalu besar.
Ini juga tampaknya merusak jumlah kolom maksimum untuk mySQL. Saat itulah saatnya pindah ke Hive atau HBase jika Anda bisa.
sumber
Inilah cara saya melakukannya dengan Python menggunakan csv dan Konektor MySQL :
Poin-poin penting
'rb'
binerskipinitialspace
opsi.255
tidak cukup lebar, Anda akan mendapatkan error pada INSERT dan harus memulai kembali.ALTER TABLE t MODIFY `Amount` DECIMAL(11,2);
ALTER TABLE t ADD `id` INT PRIMARY KEY AUTO_INCREMENT;
sumber
Impor File CSV ke tabel mysql
kunjungan: http://www.webslessons.com/2014/02/import-csv-files-using-php-and-mysql.html
sumber
Seperti yang telah disebutkan orang lain, infil lokal data muat berfungsi dengan baik. Saya mencoba skrip php yang diposting Hawkee, tetapi tidak berhasil untuk saya. Daripada men-debugnya, inilah yang saya lakukan:
1) salin / tempel baris header file CSV ke file txt dan edit dengan emacs. tambahkan koma dan CR di antara setiap bidang untuk menempatkan masing-masing di barisnya sendiri.
2) Simpan file sebagai FieldList.txt
3) mengedit file untuk memasukkan defns untuk masing-masing bidang (sebagian besar varchar, tapi beberapa yang int (x). Add membuat tabel tablename (ke awal file dan) ke akhir file. Simpan sebagai CreateTable.sql
4) mulai klien mysql dengan masukan dari file Createtable.sql untuk membuat tabel
5) mulai klien mysql, salin / tempel di sebagian besar perintah 'LOAD DATA INFILE' yang menggantikan tabel saya nama dan nama file csv. Tempel di file FieldList.txt. Pastikan untuk menyertakan 'IGNORE 1 LINES' sebelum menempel di daftar bidang
Kedengarannya banyak pekerjaan, tapi mudah dengan emacs .....
sumber
Gunakan aplikasi TablePlus: Klik kanan pada nama tabel dari panel kanan Pilih Impor ...> Dari CSV Pilih file CSV Tinjau pencocokan kolom dan tekan Impor Semua selesai!
sumber
Saya memiliki pencarian google banyak cara untuk mengimpor csv ke mysql, termasuk "memuat data infile", menggunakan meja kerja mysql, dll.
ketika saya menggunakan tombol impor meja kerja mysql, pertama-tama Anda perlu membuat tabel kosong sendiri, mengatur setiap jenis kolom Anda sendiri. Catatan: Anda harus menambahkan kolom ID di akhir sebagai kunci utama dan bukan null dan auto_increment, jika tidak, tombol impor tidak akan terlihat nanti. Namun, ketika saya mulai memuat file CSV, tidak ada yang dimuat, sepertinya bug. Saya menyerah.
Untungnya, cara termudah terbaik sejauh ini yang saya temukan adalah dengan menggunakan mysql Oracle untuk excel. Anda dapat mendownloadnya dari sini mysql untuk excel
Inilah yang akan Anda lakukan: buka file csv di excel, di tab Data, cari tombol mysql untuk excel
pilih semua data, klik ekspor ke mysql. Catatan untuk mengatur kolom ID sebagai kunci utama.
Setelah selesai, masuk ke meja kerja mysql untuk mengubah tabel, seperti jenis mata uang harus desimal (19,4) untuk desimal jumlah besar (10,2) untuk penggunaan biasa. jenis bidang lainnya mungkin disetel ke varchar (255).
sumber