Имитация MySQL запросов - PullRequest
       2

Имитация MySQL запросов

16 голосов
/ 28 сентября 2011

Есть ли способ протестировать запросы MySQL без изменения моей базы данных?

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

TY

Ответы [ 3 ]

25 голосов
/ 28 сентября 2011

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

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

START TRANSACTION;

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

ROLLBACK;

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

7 голосов
/ 28 сентября 2011

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

2 голосов
/ 28 сентября 2011

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

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