Обновление таблиц базы данных Oracle после создания начальной копии - PullRequest
1 голос
/ 12 апреля 2019

У меня есть база данных производства и разработки (конечно, на разных системах). Много месяцев назад я скопировал производственную базу данных в систему разработки. Я использовал exp / imp в то время. С тех пор в производственной базе данных было довольно много изменений, которые я хотел бы скопировать в базу данных разработки. Я бы предпочел не стереть базу данных разработки и начать все заново из-за данных, которые мне пришлось добавить в базу данных разработки.

Моя первоначальная мысль заключалась в том, чтобы использовать MERGE INTO для копирования новых записей. Но это, очевидно, требует, чтобы я сделал это для таблиц и перечислил все поля всех таблиц. Мы говорим сотни таблиц и тысячи полей здесь. Не очень хорошее решение.

Есть ли более простой способ?

1 Ответ

0 голосов
/ 12 апреля 2019

Почему бы не использовать параметр TABLE_EXISTS команды impdp для добавления новых данных в существующие таблицы? Повторяющиеся ключи отключатся при ошибке, но остальные данные все равно должны быть импортированы. Результаты будут немного грязными. Перед запуском TRUNCATE любые таблицы в тесте, где вы можете просто привести всю рабочую таблицу. Отключить FK. Повторно включить после импорта. - - Другой вариант - создать ссылку на базу данных и создать INSERT / SELECT во всех таблицах, где данные отсутствуют в существующей тестовой таблице. Возможно, вы также захотите отключить FK перед запуском и снова включить, когда закончите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...