Как записать дамп базы "поверху"?, то есть импортировать только отсутствующие значения

Главные вкладки

Комментарии

Аватар пользователя Valeratal Valeratal 6 июля 2009 в 16:38

дамп базы, да
то есть добавить только отсутствующие значения

например, в базе идут
запись 1
запись 2
запись 4
запись 5

а в дампе
запись 1
запись 2
запись 3
запись 4
запись 5

нужно, чтобы дамп базы не пытался залить запись 1 в запись 2, а только залил "запись 3" (отсутствующее значение)

Аватар пользователя Valeratal Valeratal 6 июля 2009 в 17:18

нашел, что это теоретически делается так


Бывают ситуации, когда желательно восстановить базу форума или CMS из резервной копии, но при этом не терять ту часть материала, которая была добавлена после снятия этой копии. Сделать это достаточно просто. При снятии дампа с помощью phpMyAdmin следует включить опции “create table if not exists” и “insert ignore”. При включении этих опций попытка создать таблицу будет выполняться только в том случае, если таблицы не существует, а вставка записей — только при отсутствии записей с таким же PRIMARY KEY (тогда как без этих опций при наличии таблиц/записей возникли бы ошибки SQL).


Также вместо insert ignore можно выбрать режим создания дапма REPLACE, это позволит не только восстановить уничтоженные записи, но и вернуть в состояние на момент снятия дампа все записи.


Если же дамп изначально был снят в режиме обычного INSERT, можно извлечь его в отдельную базу данных, после чего снять дамп в нужном режиме, и приступить к восстановлению основной базы.

правда не понятно, как быть когда дамп слелан дампером, и база гораздо больше 5 мегабайт (которые в состоянии переварить phpMyAdmin