Подскажите по MySQL

T
На сайте с 28.06.2007
Offline
82
347

Подскажите пожалуйста по MySQL.

Вот есть таблица с двумя полями

id (INT) - auto_increment

text (varchar)

и есть текстовый файл с такой структурой:

строка 1

строка 2

строка 3

Подскажите как импортировать этот TXT файл в поле text? А id чтобы само заполнилось auto_increment.

Чтобы получилось:

id - text

1 - строка 1

2 - строка 2

3 - строка 3

DV
На сайте с 01.05.2010
Offline
644
#1

id само будет автоинкрементом заполняться.

Можно сбросить, чтобы сначала пошло

ALTER TABLE tablename AUTO_INCREMENT = 1;

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#2


<?php
$lines = file('file.txt');
if (count($lines) > 0)
{
mysql_query('ALTER TABLE table AUTO_INCREMENT = 1');
$i=0;
foreach ($lines as $line)
{
$line = mysql_real_escape_string($line);
$values[] = "('$line')";
$i++;
}
$sql = 'INSERT INTO table (`text`) VALUES ' .implode(', ', $values);
if(mysql_query($sql))
{
echo "Добавлено <b>$i</b> строк";
}
else
{
echo 'Ошибка добавления<br/>', mysql_errno(), '->', mysql_error();
die();
}
}
?>

table - имя Вашей таблицы

Я как ВАЗ - не проверял, работоспособность не гарантирую:)

Подпись))
T
На сайте с 28.06.2007
Offline
82
#3

Спасибо. Но не уточнил что текстовый файл очень большой, больше 50млн. строк в нём.

Структура таблицы:

id (INT) - auto_increment

text (varchar)

В phpmyadmin никак нельзя импортировать такой файл в "столбец" text?

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#4

А чем PHPMyAdmin лучше обычного PHP?:)

Я так полагаю файл размером около 1ГБ?

Возможно, а скорее всего даже можно это дело сделать как-то правильней, но я бы сделал так:

1) разбил файл на несколько частей(скажем на 100)

2) и все равно бы юзал этот скрипт для вставки в БД:)

P
На сайте с 03.12.2008
Offline
38
#5

в консоли

mysql -umysql_user -pmysql_password -e "LOAD DATA INFILE 'path_to_file' INTO TABLE table_name(column_name)" database_name

где ваши соответственно логин/пароль к mysql, путь к файлу, название таблицы, столбца, базы данных.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий