1

Тема: Проблема с переносом большой базы

В базе 82 таблицы. 81 переношу без проблемм т.к. занимают мало места.
В основном весь объём занимает одна таблица со статьями ~ 10 mB.
Подскажите, как перенести эту таблицу по частям. Там около 800 записей. Я ставлю отображать на 1 странице 400 записей, потом делаю экспорт, из полученного файла на новом месте восстанавливаю, тут всё в порядке.
Потом делаю экспорт оставшейся половины и пытаюсь его перенести на новое место, но при этом уже перенесённые записи затираются.
Подскажите, можно ли при переносе во второй раз сделать дополнение таблицы?

2

Re: Проблема с переносом большой базы

Vivaldis
В phpMyAdmin, на странице экспорта поставьте галочку "Добавить IF NOT EXISTS".
Либо, когда будете вторую часть копировать, не включайте запрос на создание таблицы CREATE TABLE, так как она уже создана, только INSERT, в этом случае записи не затрутся.

3 (изменено: Vivaldis, 2008-05-29 19:57:12)

Re: Проблема с переносом большой базы

Hanut сказал:

Vivaldis
В phpMyAdmin, на странице экспорта поставьте галочку "Добавить IF NOT EXISTS".
Либо, когда будете вторую часть копировать, не включайте запрос на создание таблицы CREATE TABLE, так как она уже создана, только INSERT, в этом случае записи не затрутся.

С первым вариантом всё понятно. Переношу первую половину таблицы. Пока всё ОК.
Далее делаю экспорт второй половины. При этом галочка "Добавить IF NOT EXISTS" у меня включена по умолчанию.
После этого импортирую вторую половину.

http://ipicture.ru/uploads/080529/thumbs/RVveys1w3m.jpg

При этом мне не понятно где не включать запрос на создание таблицы CREATE TABLE, а выставить только INSERT. При импорте такой возможности не нахожу.
Импортирую, но всё равно затираются предыдущие записи.

Ошибка
SQL-запрос:

--
-- Dumping data for table `nuke_stories`
--
INSERT INTO `nuke_stories` ( `sid` , `catid` , `aid` , `title` , `time` , `hometext` , `bodytext` , `comments` , `counter` , `topic` , `informant` , `notes` , `ihome` , `alanguage` , `acomm` , `haspoll` , `pollID` , `score` , `ratings` , `rating_ip` , `associated` )
VALUES ( 414, 0, 'Vivaldis', 'Стабильная система', '2007-10-Ю....................................... много текста........226', '' ) ;

Ответ MySQL: 

#1062 - Duplicate entry '414' for key 1

4

Re: Проблема с переносом большой базы

Vivaldis сказал:

При этом мне не понятно где не включать запрос на создание таблицы CREATE TABLE, а выставить только INSERT

В дампе, который импортируете. Дамп - это обычный текстовый файл содержащий SQL запросы на создание (CREATE TABLE) таблицы и вставку данных (INSERT).

Vivaldis сказал:

Импортирую, но всё равно затираются предыдущие записи.

Не должно такого быть.

Vivaldis сказал:

#1062 - Duplicate entry '414' for key 1

Это означает, что вы пытаетесь одну строку, имеющую sid равный 414, вставить два раза, что недопустимо.

5

Re: Проблема с переносом большой базы

Hanut сказал:

В дампе, который импортируете. Дамп - это обычный текстовый файл содержащий SQL запросы на создание (CREATE TABLE) таблицы и вставку данных (INSERT).

т.е. нужно открыть созданный файл и заменить там CREATE TABLE на INSERT?

6

Re: Проблема с переносом большой базы

Vivaldis
Удалите конструкцию CREATE TABLE Вплоть до первого INSERT.