আমার কাছে একটি ক্লায়েন্টের থেকে অস্বাভাবিক ইভেন্টগুলি-ডায়েরি সিএসভি রয়েছে যা আমি মাইএসকিউএল টেবিলের মধ্যে লোড করার চেষ্টা করছি যাতে আমি সংবেদনশীল বিন্যাসে রিফ্যাক্টর করতে পারি। আমি 'CSVImport' নামে একটি সারণী তৈরি করেছি যার CSV ফাইলের প্রতিটি কলামের জন্য একটি ক্ষেত্র রয়েছে। সিএসভিতে 99 টি কলাম রয়েছে, সুতরাং এটি নিজের মধ্যে একটি কঠিন কাজ ছিল:
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);
টেবিলে কোনও প্রতিবন্ধকতা নেই এবং সমস্ত ক্ষেত্রগুলি VARCHAR (256) মান ধারণ করে, কলামগুলিতে (আইএনটি দ্বারা উপস্থাপিত), হ্যাঁ / না (বিআইটি দ্বারা উপস্থাপিত), মূল্য (ডিসিআইএমএল দ্বারা উপস্থাপিত) এবং পাঠ্য অস্পষ্টতাগুলি ( পাঠ্য দ্বারা উপস্থাপিত)।
আমি ফাইলটিতে ডেটা লোড করার চেষ্টা করেছি:
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 |
...
পুরো টেবিলটি ভরে গেছে NULL
।
আমি মনে করি সমস্যাটি হ'ল পাঠ্য ব্লার্বগুলিতে একাধিক লাইন রয়েছে এবং মাইএসকিউএল ফাইলটি এমনভাবে পার্স করছে যেন প্রতিটি নতুন লাইন একটি ডাটাবেজ সারির সাথে সঙ্গতি রাখে। আমি কোনও সমস্যা ছাড়াই ওপেন অফিসে ফাইলটি লোড করতে পারি।
ক্লায়েন্টডেটা.সিএসভি ফাইলটিতে 2593 টি লাইন এবং 570 রেকর্ড রয়েছে। প্রথম লাইনে কলামের নাম রয়েছে। আমি মনে করি এটি কমা বিস্মৃত এবং টেক্সট দৃশ্যত ডাবলকোটের সাথে সীমাবদ্ধ।
হালনাগাদ:
সন্দেহ হলে, ম্যানুয়ালটি পড়ুন: http://dev.mysql.com/doc/refman/5.0/en/load-data.html
আমি LOAD DATA
বিবৃতিতে কিছু তথ্য যুক্ত করেছি যে ওপেনঅফিস অনুমান করার জন্য যথেষ্ট স্মার্ট ছিল এবং এখন এটি রেকর্ডের সঠিক সংখ্যাটি লোড করে:
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;
তবে এখনও প্রচুর NULL
রেকর্ড রয়েছে এবং লোড হওয়া ডেটারগুলির কোনওটিই সঠিক জায়গায় বলে মনে হয় না।