Имитировать запросы mysql

Есть ли способ протестировать запросы mysql, не изменяя мою базу данных?

Например, могу ли я запустить delete from my_table where id=101 без фактического удаления чего-нибудь? Как насчет вставки и обновления?

TY

Ответ 1

Вы можете начать транзакцию перед запуском своих запросов, а затем откат после их запуска. Обратите внимание, что для этого вам потребуются таблицы InnoDB или XtraDb (не будет работать в MyISAM).

Чтобы начать транзакцию, отправьте в MySQL следующую инструкцию:

START TRANSACTION;

И в конце ваших запросов запустите следующий оператор:

ROLLBACK;

Ваша база данных никогда не будет изменена с точки зрения других подключений. Ваше текущее соединение увидит изменения до ROLLBACK, после чего восстановится исходное состояние.

Ответ 2

Если вы просто хотите посмотреть, сколько строк будет удалено, почему бы не заменить "delete" на "select count (*)"?

Ответ 3

Скопируйте базу данных в тестовую базу данных или автоматически создайте import- script. Затем вы можете протестировать все, что захотите, в тестовой базе данных и снова восстановить его с помощью script или импорта.