Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Пифче

load data infile

Препоръчан отговор


Привет! Отскоро започнах да се занимавам с MySQL и се натъкнах на следният проблем. При добавяне на информация от текстов файл към таблица в базата данни явно греша при структурирането на текста. Направих съвсем елементарна таблица 'pet'. Пробвах няколко пъти,редактирах и текстовият файл,задавах Line Fields Terminated By и какво ли не използвах, но някъде греша...Ако някой има представа ,ще се радвам да чуя предложения :)

 

 

 

 

post-346572-0-08625600-1394567371_thumb.

post-346572-0-09946300-1394567379_thumb.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Привет! Отскоро започнах да се занимавам с MySQL и се натъкнах на следният проблем. При добавяне на информация от текстов файл към таблица в базата данни явно греша при структурирането на текста. Направих съвсем елементарна таблица 'pet'. Пробвах няколко пъти,редактирах и текстовият файл,задавах Line Fields Terminated By и какво ли не използвах, но някъде греша...Ако някой има представа ,ще се радвам да чуя предложения :)

а пробвахте ли да разделите полетата със запетайка и да зададете делимитера пак запетайка?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ако имаш предвид това-да, при което ми дава Error 1406: data too long for column 'name' at row 1, при положение,че съм задала 20 символа. Сигурна съм,че е нещо просто, но ми се губи някъде из часовете пред лаптопа :D

 

post-346572-0-48738600-1394568744_thumb.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Здравейте, 

 

Порових се по документацията на MySQL и открих следното:

You could create a text file pet.txt containing one record per line, with values separated by tabs, and given in the order in which the columns were listed in the CREATE TABLE statement. For missing values (such as unknown sexes or death dates for animals that are still living), you can use NULL values. To represent these in your text file, use N (backslash, capital-N). For example, the record for Whistler the bird would look like this (where the whitespace between values is a single tab character):

Whistler Gwen bird N 1997-12-09 N

To load the text file pet.txt into the pet table, use this statement:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

If you created the file on Windows with an editor that uses rn as a line terminator, you should use this statement instead:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
-> LINES TERMINATED BY 'rn';

Към това има и един полезен коментар под него:

mysql> LOAD DATA LOCAL INFILE '<dir>/pet.txt' INTO TABLE pet FIELDS terminated by '<delimiter>';

Тъй като в момента нямам под ръка инсталиран MySQL, затова ще помоля да опитате приложените команди. 

Не е изключено, както и по - горе леко се намеква, текстовия Ви едитор да добавя допълнителни терминатори и символи, като например символи за връщане на курсора ®, нов ред (n) или табулация (t).

Във Вашия случай, може да опитате с комбинацията от подаване на delimiter-и както за редовете, така и за field-овете.

Прегледайте и коментарите след tutorial-а - има обяснения за доста проблеми, с които са се сблъскали хората - могат да Ви бъдат от полза  :)

 

Източник: MySQL Doc

 

Поздрави !

 

P.S. Сега видях формата на редовете - подозирам, че трябва за FIELD терминатор да сложите ',' (запетая). Изглежда, че ако не е зададен такъв терминатор за полетата (FIELDS), по подразбиране се ползва whitespace (' ').

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Благодаря много!! Ще се поразровя и ще прегледам отново кое не е наред,пък ако има резултат ще се похваля :D


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

×
×
  • Добави ново...