2017-06-12 5 views
-1

Ich bin versucht, die folgenden Daten mit dieser Aussage zu importieren:Import CSV-Datei mit Dezimalzahlen zu mySQL

LOAD DATA LOCAL INFILE 'C:/Users/path/Desktop/decitable.csv' 
INTO TABLE technical_center.decitable 
FIELDS TERMINATED BY ';' 
IGNORE 1 LINES 

csv-Daten:

intRow;deciRow 
4;2.43 

die SQL-Datenfelder werden als INT formatiert (11) und DECIMAL (11). Nach dem Ausführen der Import-Anweisung erhalte ich die Werte 4 und 2. Wo ist das Problem in der MySQL-Workbench mit dieser SQL-Anweisung?

+0

Ihre Dezimal Spalte nicht erlaubt für irgendwelche Nachkommastellen. https://dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html – CBroe

+0

Wenn Sie dezimale * Orte * wollen, müssen Sie * Dezimalstellen definieren, mit z. 'DECIMAL (11,2)'. – EJP

+0

Arbeitete für mein Problem. Danke vielmals! – marciano

Antwort

-1

Ihr Problem ist nicht in CSV oder Import Prozedur, bitte DECIMAL ändern (10) zu DECIMAL (10,2), wenn Sie benötigen zweistellige auf dezimal

hoffe, das hilft

+0

Aber nicht für Geldwerte. Und FLOAT ist keine bessere Lösung als DOUBLE für andere Werte, es sei denn, Platz ist ein Hauptanliegen, und Sie wissen, dass Sie eine sehr begrenzte Auswahl an Werten haben. – EJP

+1

_ "Ich würde FLOAT persönlich als bessere Lösung empfehlen, um Zahlen mit oder ohne Dezimalzahlen zu behalten" _ - das hängt wirklich davon ab, was diese Daten eigentlich darstellen sollen. Wenn es zum Beispiel Geldwerte wären, wäre die Verwendung von Float ein schwerwiegender Fehler. (Wenn Sie nicht wissen, warum, dann schlage ich vor, dass Sie etwas darüber nachforschen.) – CBroe

+0

Ich habe nicht für welches Szenario gesagt, der Zweck war es, eine beliebige Nummer ohne Rundung zu speichern –