Nasıl CSV dosyası MySQL tablo almak
Etkinlikler-günlük aklı başında bir biçime yeniden Düzenle ben bir MySQL tabloya yüklemeye çalışıyorum bir istemciden CSV normalleştirilmemiş var. Bir tablo 'CSVİmport' CSV dosyasının her sütun için bir alan vardır. denilen yarattım CSV 99 sütun içerir , Bu kendi başına yeterince zor bir görev oldu:
CREATE TABLE 'CSVImport' (id INT);
ALTER TABLE CSVImport ADD COLUMN Title VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN Company VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN NumTickets VARCHAR(256);
...
ALTER TABLE CSVImport Date49 ADD COLUMN Date49 VARCHAR(256);
ALTER TABLE CSVImport Date50 ADD COLUMN Date50 VARCHAR(256);
Hiçbir kısıtlamaları masada, ve tüm alanları tutun İKİLİK(256) değerleri dışında, sütunlar içeren sayar (tarafından temsil edilen İNT) Evet/Hayır (tarafından temsil edilen BİT), fiyatlar (temsil ONDALIK), metin diyor (tarafından temsil edilen METİN).
Dosya içine veri yüklemek için denedim:
LOAD DATA INFILE '/home/paul/clientdata.csv' INTO TABLE CSVImport;
Query OK, 2023 rows affected, 65535 warnings (0.08 sec)
Records: 2023 Deleted: 0 Skipped: 0 Warnings: 198256
SELECT * FROM CSVImport;
| NULL | NULL | NULL | NULL | NULL |
...
Bütün Tablo NULL
ile doldurulur.
Sorun diyor metin birden fazla satır içeren olduğunu düşünüyorum, ve MySQL her satırı yeni bir satır databazse karşılık olarak, dosya ayrıştırma. Bir sorun olmadan OpenOffice dosyayı yükleyebilirsiniz.
Bu clientdata.csv dosyası 2593 hatları ve 570 kayıtlarını içerir. İlk satırı sütun adlarını içerir. Ortak sınırlandırılmış olduğunu düşünüyorum, ve metin görünüşe göre doublequote ile sınırlandırılmış.
GÜNCELLEME:
Şüphe, El Kitabı okuduğunuzda: http://dev.mysql.com/doc/refman/5.0/en/load-data.html
OpenOffice anlaması için yeterince akıllı idi, ve şimdi bu kayıtların sayısını doğru olarak yükler LOAD DATA
deyimi için bazı bilgiler ekledim:
LOAD DATA INFILE "/home/paul/clientdata.csv"
INTO TABLE CSVImport
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
Ama hala NULL
kayıtları tamamen ve doğru yerde gibi görünüyor uçmuş bu verilerin hiçbiri vardır.
CEVAP
Kullanım mysqlimport veritabanına bir tablo yüklemek için:
mysqlimport --ignore-lines=1 \
--fields-terminated-by=, \
--local -u root \
-p Database \
TableName.csv
http://chriseiffel.com/everything-linux/how-to-import-a-large-csv-file-to-mysql/ birinde buldum
Sınırlayıcı bir sekme için --fields-terminated-by='\t'
Nasıl bir mysql veritabanı tablo boyut...
nasıl mysql veritabanında tek bir tabl...
nasıl mysql veritabanı Komut satırını ...
Nasıl MySQL kullanıcı hesaplarının bir...
Bunları nasıl belirli sütun adları ile...