Как отменить ROLLBACK в SQL? - PullRequest
       5

Как отменить ROLLBACK в SQL?

0 голосов
/ 03 января 2019

Я изучаю Oracle SQL, и после команды DELETE я попытался выполнить ROLLBACK.Проблема в том, что я нажал по ошибке F9 во второй раз, и ROLLBACK снова запустился.Теперь он удалил все мои INSERT из таблицы, и я не знаю, как их вернуть.

Я попытался снова вставить те же запросы, но возникла проблема с PK (первичный ключ).Кроме того, я не могу удалить таблицу, чтобы начать все сначала, потому что у меня есть другие таблицы, использующие FK (внешние ключи) в сочетании с этой.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Вы не можете отменить откат. Откат не не «отмена», поэтому он не имеет «повтор». Это "выбросить эти изменения, я не хочу их"

Я бы посоветовал вам начать второй вопрос, в котором вы объясните, что вы имели в виду: "возникла проблема с PK (первичным ключом)." и обратитесь за помощью.

Обратного пути нет, единственный путь - вперед.

0 голосов
/ 03 января 2019

К сожалению, вы не можете отменить ROLLBACK, также как вы не можете отменить COMMIT. Это по замыслу.

Что происходит, когда вы делаете ROLLBACK, так это то, что все незафиксированные изменения, пока эта точка не будет потеряна. Вызов ROLLBACK дважды не имеет никакого эффекта, если вы не выполняете никаких изменений между двумя вызовами.

Итак, вопрос: вы COMMIT ваши INSERT s до запуска DELETE?

  • если да: ROLLBACK только что отменил команду DELETE, ваши INSERT не должны быть потеряны

  • если нет: ROLLBACK вернул также INSERT s

В обоих сценариях не имеет значения, один раз или дважды ваш вызываемый ROLLBACK.

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