[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разбить insert по частям
linklink26
Есть огромная таблица которую phpMyAdmin не вставит.

Нужно вставить ее в mysql скриптом.

Т.е разбить постранично как-то.

Вот мой дамп базы

INSERT INTO `cms_tovras` VALUES
(1, '', '4', '', '', '', 5, 'e500', 'text text text'),
(
2, '', '32', '', '', '', 8, '3700', 'text text text'),
(
3, '', '44', '', '', '', 3, '3500', 'text text text'),
........
много строк......
(
4, '', '233', '', '', '', 4, '5800', 'text text text');


И нужно все это огромное количество данных запихать в таблицу.
Может если пхп админ не смог то и скрипт не сможет?
Если так то есть ли какие-нибудь системы пауз, там while break или подобные?



Спустя 1 час, 35 минут, 26 секунд (19.11.2010 - 14:57) vasa_c написал(а):

Спустя 2 дня, 18 часов, 33 минуты, 39 секунд (22.11.2010 - 09:31) linklink26 написал(а):
Не то, дело не в пхп админе, а как именно скриптом разбить данные чтобы скажем в одну транзакцию по 100 записей вставлять, потом еще одну транзакцию и т.д.

Причем я еще на лету делаю выборку из других баз и парсю ее. В общем если одним запросом инсертить то выдает ошибку "Got a packet bigger than 'max_allowed_packet' bytes". Вот и спрашиваю как разбить.

Спустя 2 часа, 23 минуты, 18 секунд (22.11.2010 - 11:54) waldicom написал(а):
$counter % 100

Спустя 9 часов, 43 минуты, 24 секунды (22.11.2010 - 21:38) sergeiss написал(а):
Цитата (linklink26 @ 19.11.2010 - 14:22)
Вот мой дамп базы

Открой этот дамп базы в любом текстовом редакторе, убери первую строку, а также скобки в начале и конце каждой строки.
После чего используй команду LOAD DATA INFILE. И усё у тебя будет smile.gif (а за подробностями см. хэлп).

Спустя 27 дней, 18 часов, 58 минут, 58 секунд (20.12.2010 - 16:36) linklink26 написал(а):
Решил проблему чтением этого дампа и записи его в мелки тхт файлы. А потом построчно по 10 строк в запрос и обратно в базу.

Спустя 23 минуты, 42 секунды (20.12.2010 - 17:00) sergeiss написал(а):
linklink26 - проще было бы использовать LOAD DATA INFILE smile.gif Потратил бы на всю работу минут 10, включая чтение хэлпа.

Спустя 16 часов, 56 минут, 40 секунд (21.12.2010 - 09:57) linklink26 написал(а):
sergeiss
Лоэд дата не делает на лету конвертацию полей в другую таблицу с нужными мне данными и выборкой, да и чтобы выполнить такую команду надо ставить какую-то хрень которая у меня не поддерживается.

Спустя 1 час, 37 минут, 7 секунд (21.12.2010 - 11:34) kirik написал(а):
Цитата (linklink26 @ 21.12.2010 - 01:57)
да и чтобы выполнить такую команду надо ставить какую-то хрень которая у меня не поддерживается.

load data infile это вроде дефолтная возможность mysql.

Цитата (linklink26 @ 21.12.2010 - 01:57)
Лоэд дата не делает на лету конвертацию полей в другую таблицу с нужными мне данными и выборкой,

Это все решается заливкой стандартного дампа, и внесением нужных изменений в таблицу, либо копирование через скрипт (запрос-вставка, запрос-вставка).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.