Есть ли способ зафиксировать только данные, вставленные/обновленные в таблице через ссылку базы данных, и не данные текущей сессии? Или они считаются одними и теми же?Oracle PLSQL - ссылка только для базы данных Commit only
Например:
INSERT INTO main_database.main_table(value1, value2)
VALUES (1 , 2)
INSERT INTO [email protected]_link(value3, value4)
VALUES (3 , 4)
И сделать коммит только для таблицы ссылок базы данных?
Основание на том, почему я хотел бы это сделать: Основная база данных - для (нескольких) записей, а ссылка на базу данных - для (денежных) транзакций (обрабатываемых на отдельном сервере). Я хочу сначала обновить записи, чтобы проверить, не сработает ли какое-либо из ограничений, но не зафиксировать данные до завершения транзакции. Если транзакция завершилась неудачно, я хочу отменить записи, чтобы сохранить усилия по удалению/отмене вложений/обновлений, которые могут стать беспорядочными.
Я предполагаю, что нет, но я надеюсь, что есть способ. Заранее спасибо.
В чем заключен контекст? Вы можете создать точку сохранения между двумя операторами, откат к точке сохранения и затем совершить. Но это предполагает, что перед первым утверждением нет незафиксированных операторов и что вы можете аккуратно разделить две нити работы. Кроме того, если вы знаете, что всегда хотите совершить удаленные изменения, было бы разумнее просто выдать явное коммит после первого оператора. –
В принципе, ответ - нет. Но я изо всех сил пытаюсь понять, для чего вы хотели бы это сделать. Не могли бы вы дать нам немного больше информации, пожалуйста? –
Я обновил свой вопрос. – Mocking