MySql - проблем с Import
9 отговора
491 прегледа
MySql - проблем с Import
Здравейте,
опитвам да направя импорт в MySql от csv файл със редове, подобни на този:
16.11,116,"2,900,400.55",USD,...... и т.н.
Проблемна е колоната с число, заградено в кавички, със запетая за разделител на хилядите. MySql вярно разпознава колоната, но спира при първата запетая. В този случай числото, което влиза в таблицата е 2.
Някакви идеи?
мерси предварително.
опитвам да направя импорт в MySql от csv файл със редове, подобни на този:
16.11,116,"2,900,400.55",USD,...... и т.н.
Проблемна е колоната с число, заградено в кавички, със запетая за разделител на хилядите. MySql вярно разпознава колоната, но спира при първата запетая. В този случай числото, което влиза в таблицата е 2.
Някакви идеи?
мерси предварително.
Re: MySql - проблем с Import
Няма да стане, освен ако не parse-ваш csv-то с някакав скрипт и да махаш запетаите от цифрите преди да ги запишеш в базата.
Ако е нова таблица без данни в нея може да ги импортнеш като varchar, да пуснеш един update да махне запетаите и след това да промениш колоната на double или какъвто ти е там типа.
Ако е нова таблица без данни в нея може да ги импортнеш като varchar, да пуснеш един update да махне запетаите и след това да промениш колоната на double или какъвто ти е там типа.
Re: MySql - проблем с Import
Като махна запетаите (аз го направих като използвам текстов редактор и регулярни изрази), импорта работи правилно.
Проблемът е, че ще получавам такав csv файл редовно, трябва да има автоматизирана процедура.
Представях си, че мога да настроя нещо като Regional Settings за MySQL, но явно това не може да се настройва.
Проблемът е, че ще получавам такав csv файл редовно, трябва да има автоматизирана процедура.
Представях си, че мога да настроя нещо като Regional Settings за MySQL, но явно това не може да се настройва.
Re: MySql - проблем с Import
С DTS вероятно ще стане, но стават много сървъри по веригата...
Re: MySql - проблем с Import
Ако си под Linux - cron, perl (php) - и си в бизнеса.
Разбира се и на C става.
Под виндовс - също.
Bеer? Mоre?
Плацебото
Разбира се и на C става.
Под виндовс - също.
Bеer? Mоre?
Плацебото
Re: MySql - проблем с Import
ами да, щом не мога да науча MySQL да свърши работата, ще трябва сам да си я свърша ;-)
благодаря за идеите.
благодаря за идеите.
Re: MySql - проблем с Import
Четох малко книжки.
Излиза че може и от cvs, ама на мен ще ми е по лесно по другия начин.
Предимството е че мога да проконтролирам всяка стойност преди да я вмъкна - и с MySQL става - ама зависи от опита.
А аз имам по малко опит с висшия пилотаж под MySQL :)
Bеer? Mоre?
Плацебото
Излиза че може и от cvs, ама на мен ще ми е по лесно по другия начин.
Предимството е че мога да проконтролирам всяка стойност преди да я вмъкна - и с MySQL става - ама зависи от опита.
А аз имам по малко опит с висшия пилотаж под MySQL :)
Bеer? Mоre?
Плацебото
Re: MySql - проблем с Import
Кажи къде го прочете това че може да стане с MySQL, аз се сетих само за варианта със SET v LOAD DATA INFILE, но това работи само в MySQL 5.
Нещо такова - но дали ще работи незнам.
LOAD DATA INFILE 'file.csv'
INTO TABLE t1
(column1, @var1, column3, ....)
SET column2 = replace(@var1,",","");
Никога не съм го пробвал, а и като не си сигурен 100% какъв ще е формата, по добре да се прави със скрипт.
Нещо такова - но дали ще работи незнам.
LOAD DATA INFILE 'file.csv'
INTO TABLE t1
(column1, @var1, column3, ....)
SET column2 = replace(@var1,",","");
Никога не съм го пробвал, а и като не си сигурен 100% какъв ще е формата, по добре да се прави със скрипт.
Re: MySql - проблем с Import
Има една книжка за подготовка за изпити - за 5.xxx.
Та май си прав че е за 5ца :)
Има и доста чалъми за определяне край на ред, разделители за полета и т.н.
Bеer? Mоre?
Плацебото
Та май си прав че е за 5ца :)
Има и доста чалъми за определяне край на ред, разделители за полета и т.н.
Bеer? Mоre?
Плацебото