Соединение двух бекапов одной таблицы

D
На сайте с 28.06.2008
Offline
1114
402

Случайно удалил часть данных одной таблицы. теперь хочу собрать акутальную версию таблицы из бекапов. Сложность в том что сайт посещаемый и когда я поднял бекап таблица начала уже заполняться и тут я увидел что части данных нет. Нашел тот бекап где есть та часть данных - но руками выбирать не хочется.

Как импортировать этот бекап чтобы импортировались только те ID которых нет в работающем сейчас варианте?

zexis
На сайте с 09.08.2005
Offline
388
#1

1) Восстановить из бэкапа поврежденную таблицу, но при восстановлении дать ей другое имя.

2) Написать небольшую программу на PHP, которая будет перебирать все записи в таблице и копировать нужные вам из одной таблицы а другую.

D
На сайте с 28.06.2008
Offline
1114
#2

Спс - сам не знаю пхп, попросил знакомого - именно так и сделали.

freezebreeze
На сайте с 31.10.2013
Offline
9
#3

Есть куда более простое решение, чем php

предположим, что исходная таблица у вас имеет название main_table и ключевое поле (с уникальными идентификаторами записи) имеет название id

1) импортировать бекап во временную таблицу например, temp_table1

2) выполнить запрос insert (select * from temp_table1 where temp_table1.id <> main_table.id) into main_table;

Верить никому нельзя. Мне — можно.
[umka]
На сайте с 25.05.2008
Offline
456
#4
freezebreeze:
предположим, что исходная таблица у вас имеет название main_table и ключевое поле (с уникальными идентификаторами записи) имеет название id

Если есть уникальный индекс, то и вовсе не нужно шаманить ни с какими дополнительными таблицами. Достаточно заменить в дампе все "INSERT" на "INSERT IGNORE".

А вообще, если в дампе таблицы строки отдельно записаны, то можно сравнить файлы обычным diff-ом.

Лог в помощь!
freezebreeze
На сайте с 31.10.2013
Offline
9
#5
'[umka:
;12293572']Если есть уникальный индекс, то и вовсе не нужно шаманить ни с какими дополнительными таблицами. Достаточно заменить в дампе все "INSERT" на "INSERT IGNORE".
А вообще, если в дампе таблицы строки отдельно записаны, то можно сравнить файлы обычным diff-ом.

а если файл дампа ~2-3 гигов :)

[umka]
На сайте с 25.05.2008
Offline
456
#6
freezebreeze:
а если файл дампа ~2-3 гигов :)

А чем вас пугают такие размеры?

freezebreeze
На сайте с 31.10.2013
Offline
9
#7
'[umka:
;12293623']А чем вас пугают такие размеры?

меня - ничем! А вот ТС может испугаться, судя по теме:)))

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