Возможно ли получить удалённые данные?

138
17 февраля 2018, 22:04

Я делаю запрос.

DELETE FROM `table` WHERE field = ?;

Могу ли я получить результатом выполнения данного запроса данные, которые я им удалил?

Answer 1

Вы можете сперва выбрать данные запросом SELECT, а потом удалить их. Чтобы не дать другим сессиям изменить данные между вашими SELECT и DELETE, можно сделать как-то так:

LOCK TABLES `table` WRITE;
SELECT * FROM `table` WHERE field = ?;
DELETE FROM `table` WHERE field = ?;
UNLOCK TABLES;

Как вариант, вы можете реализовать свою систему так, чтобы она вообще не удаляла данные. "Удаленные" записи просто помечаете как удаленные (для этого таблице нужно еще одно поле). В запросы извлечения данных добавляете соответствующее условие - чтобы записи, помеченные как удаленные, не извлекались.

Answer 2

Бекапа нет? Из логов можно восстановить лишь изменения. Т.е. если логи у тебя имеются с начала CREATE DATABASE и до DROP DATABASE, то восстановить можно.

READ ALSO
Java корпоративная проект

Java корпоративная проект

Ребят мне поставили задачу: написать корпоративную программу на JAVA рассчитанную на обмен данными по локальной сетиПрограмма должна быть...

128
FirebaseRecyclerAdapter не обновляет позицию в списке

FirebaseRecyclerAdapter не обновляет позицию в списке

Создал адаптер для Firebase+RecyclerViewв нем TextView и Button удалить

132
Данные в Offset ()

Данные в Offset ()

Здравствуйте, такой вопрос, в консольке в браузере, $('dropdown')

238
Как снять выделение у блока, выделенного по-умолчанию?

Как снять выделение у блока, выделенного по-умолчанию?

Есть три блока, каждый из которых должен подсвечиваться, при наведении мышиБлок №1 подсвечен по-умолчанию

264