Откат транзакции VS Удалить записи - PullRequest
0 голосов
/ 24 марта 2020

Ищем некоторые сведения об использовании запросов Transaction или Delete, когда последующий запрос не выполняется. Вкратце, в моем приложении я вставляю в две таблицы, вызывая две хранимые процедуры, и вставленные данные будут загружены в два API REST. Если кто-либо из REST API не работает, я должен откатить данные, введенные в базу данных.

Так какой подход подходит? Либо использовать транзакцию SQL, либо удалить вставленные записи через процедуру базы данных.

1 Ответ

0 голосов
/ 24 марта 2020

Это и идеальная ситуация для использования транзакции. Откуда вы это знаете?
Допустим, вы вставили несколько строк, затем сделали вызов API, затем попытались удалить вставленные строки. Что будет в этом случае?

  1. Вставленные строки уже доступны для чтения (даже если не включено грязное чтение) - это просто обычные строки в базе данных. Таким образом, все запросы, выполненные до тех пор, пока вы не закончите sh, который вы запрашиваете, также будут относиться к этим строкам.
  2. Что произойдет, если вам не удастся удалить строки? Точно, они просто останутся в базе данных. Здесь у вас неправильные данные. Плохо.

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

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