Меня недавно задали вопрос во время интервью. Вопрос:откат транзакций для нескольких баз данных
У меня есть две разные базы данных, и мне нужно обновить таблицы в обеих базах данных. We хотите согласованность данных. Я обновил таблицу в первой базе данных, а затем, когда обновил вторую базу данных, я получил ошибку. Итак, что я могу сделать в этой ситуации ?
Я думал взять все в сделке, и если бы у меня было исключение, я бы сказал, что могу откатиться. Но они сказали, что из-за наличия двух разных баз данных невозможно выполнить их в одной транзакции. Я не уверен, правильно ли я понимаю, но не нашел другого решения.
Теперь вот что я прошу.
1) Можно ли взять два запроса для двух разных баз данных в одной транзакции? Поскольку я читаю в некоторых сообщениях, это возможно, но я не мог быть уверен после того, что они сказали.
2) Если это невозможно для управления ими в транзакции, как я могу отменить изменения в первой базе данных.
Это немного мусорный вопрос, на мой взгляд. Я бы, наверное, пошел по строкам ... Я бы не проводил ни одной сессии, пока все этапы не будут завершены из-за этого ограничения. По этой причине я бы просто откат db1, поскольку db2 не изменился бы из-за сбоя в инструкции обновления. –
читайте о ссылках на базы данных, XA (распределенные транзакции). Это довольно широкая тема. – ibre5041