Есть ли способ протестировать запросы 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 или импорта.