आपकी डेटा फ़ाइल में दिनांक पहले से ही एक प्रारूप में है जिसे MySQL को मूल रूप से समझना चाहिए। यह सिर्फ दोहरे उद्धरण चिह्नों में संलग्न है। आपको बताना होगा LOAD DATA INFILE
उद्धरणों से कैसे निपटें। कुछ इस तरह का प्रयास करें:
LOAD DATA LOCAL INFILE 'myData.csv'
INTO TABLE equity_last_import
FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY ','
LINES TERMINATED BY '\n'
(equity,last,last_date)
अपडेट करें:
चूंकि आपने कहा है कि यह काम नहीं करता है, इसलिए मैंने एक परीक्षण तालिका बनाई और सत्यापित किया कि यह काम करती है। ये रहा सबूत:
मैंने प्रश्न से आपके सीएसवी डेटा को हाइलाइट किया है और myData.csv
नामक एक नई फ़ाइल में चिपकाया है मेरे सिस्टम के /tmp
. में फ़ोल्डर। फिर मैंने mysql कंसोल से कनेक्ट किया, test
. पर स्विच किया डेटाबेस और निम्नलिखित को चलाया:
mysql> create table equity_last_import (equity int, last decimal(10,2), last_date datetime) engine=innodb;
Query OK, 0 rows affected (0.02 sec)
mysql> LOAD DATA LOCAL INFILE '/tmp/myData.csv'
-> INTO TABLE equity_last_import
-> FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY ','
-> LINES TERMINATED BY '\n'
-> (equity,last,last_date);
Query OK, 10 rows affected (0.00 sec)
Records: 10 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from equity_last_import;
+--------+--------+---------------------+
| equity | last | last_date |
+--------+--------+---------------------+
| 4108 | 48.74 | 2013-09-16 16:15:04 |
| 4249 | 8.10 | 2013-09-16 16:15:04 |
| 4197 | 3.81 | 2013-09-16 17:20:00 |
| 4139 | 26.81 | 2013-09-16 16:15:04 |
| 4218 | 24.83 | 2013-09-16 17:20:00 |
| 4260 | 79.72 | 2013-09-16 16:15:04 |
| 4270 | 450.12 | 2013-09-16 17:20:00 |
| 4242 | 30.38 | 2013-09-16 16:15:04 |
| 4193 | 1.42 | 2013-09-16 16:15:04 |
| 4134 | 3.77 | 2013-09-16 16:15:04 |
+--------+--------+---------------------+
10 rows in set (0.00 sec)
देखो? यह पूरी तरह से काम करता है।
एक और अपडेट:
आपने निर्दिष्ट किया है कि अब आपको निम्न त्रुटि मिल रही है:
Out of range value for column 'last_date' at row 1
क्या आपकी CSV फ़ाइल में हेडर है? यदि ऐसा है, तो आप IGNORE 1 LINES
add जोड़ना चाह सकते हैं अपने LOAD DATA INFILE
. पर MySQL को हेडर पर स्किप करने के लिए कहने का आदेश।