2009-07-22 13 views
3

У нас есть MySQL-> Oracle ETL с использованием Informatica, который отлично работает для всех операторов, кроме DELETE. К сожалению, DELETE заставляет запись уйти так, что Informatica никогда не увидит ее снова, чтобы удалить ее в Oracle.Запись операторов MySQL DELETE

Как люди пошли на запись MySQL DELETE заявления?

Столы InnoDB (ACID-совместимые) с уникальными первичными ключами на всех записях (auto_increment). Мы используем MySQL с открытым исходным кодом в Windows.

Мы рекомендуем не использовать общий журнал запросов по соображениям производительности. Мы также предпочли бы сохранить базу данных MySQL двоично, а не перекомпилировать собственный специальный оператор DELETE.

ответ

2

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

Другим аналогичным решением является использование trigger для вставки записи, которую вы хотите удалить, в таблицу аудита, а затем удаления информации. Используйте вставку с Informatica, чтобы сделать то же самое на стороне Oracle.

+0

Я согласен с первым абзацем. Мы действительно селективны в реализации триггеров, но, я думаю, я согласен со вторым абзацем как с жизнеспособным вариантом. – codemonkey

+0

Да, я часто реализовал 'INSERT' в логическом столбце' active' как способ представления 'DELETE'. Затем ваш 'SELECT' должен быть скорректирован, чтобы отфильтровать данные' DELETE'd ' –

 Смежные вопросы

  • Нет связанных вопросов^_^