Мой текущий процесс отладки хранимых процедур очень прост. Я создаю таблицу под названием «отладка», куда вставляю значения переменных из хранимой процедуры по мере ее выполнения. Это позволяет мне видеть значение любой переменной в заданной точке сценария, но есть ли лучший способ отладки хранимых процедур MySQL?
mysql
database
debugging
stored-procedures
Кори Хаус
источник
источник
Ответы:
Я делаю что-то очень похожее на тебя.
Обычно я включаю параметр DEBUG, который по умолчанию имеет значение false, и я могу установить значение true во время выполнения. Затем оберните операторы отладки в блок «If DEBUG».
Я также использую таблицу регистрации для многих моих заданий, чтобы я мог просматривать процессы и сроки. Там же выводится мой код отладки. Я включаю имя вызывающего параметра, краткое описание, количество затронутых строк (при необходимости), поле комментариев и отметку времени.
Хорошие инструменты отладки - один из печальных недостатков всех платформ SQL.
источник
Следующая
debug_msg
процедура может быть вызвана для простого вывода отладочного сообщения на консоль:Затем запустите тест следующим образом:
Это приведет к следующему выводу:
источник
INSERT INTO my_log_table (message) VALUES (msg)
получить все отладочные сообщения только после завершения вызовов функций (т.е. вы вернетесь к процедуре)Да, для этого есть специализированные инструменты - MySQL Debugger .
источник
Как отлаживать хранимую процедуру MySQL.
Бедный отладчик:
Создайте таблицу с именем logtable с двумя столбцами
id INT
иlog VARCHAR(255)
.Сделайте автоинкремент столбца id.
Используйте эту процедуру:
Поместите этот код в любое место, где вы хотите записать сообщение в таблицу.
Это хороший быстрый и грязный регистратор, чтобы выяснить, что происходит.
источник
Существуют инструменты графического интерфейса для отладки хранимых процедур / функций и сценариев в MySQL. Достойный инструмент dbForge Studio for MySQL, обладающий богатой функциональностью и стабильностью.
источник
Отладчик для mysql был хорош, но не бесплатным. Вот что я использую сейчас:
Использование в хранимой процедуре:
использование хранимой процедуры:
источник
Другой способ представлен здесь
http://gilfster.blogspot.co.at/2006/03/debugging-stored-procedures-in-mysql.html
с настраиваемыми процедурами отладки mySql и таблицами журналов.
Вы также можете просто поместить простой выбор в свой код и посмотреть, будет ли он выполнен.
Я получил эту идею от
http://forums.mysql.com/read.php?99,78155,78225#msg-78225
Также кто-то создал шаблон для пользовательских процедур отладки на GitHub.
Посмотреть здесь
http://www.bluegecko.net/mysql/debugging-stored-procedures/ https://github.com/CaptTofu/Stored-procedure-debugging-routines
Здесь упоминалось
Как отловить любое исключение в триггерах и процедурах хранения для mysql?
источник
Я просто помещаю операторы выбора в ключевые области хранимой процедуры, чтобы проверить текущий статус наборов данных, а затем закомментировать их (--select ...) или удалить их перед производством.
источник
Я опоздала на вечеринку, но принесла еще пива:
http://ocelot.ca/blog/blog/2015/03/02/the-ocelotgui-debugger/ и https://github.com/ocelot-inc/ocelotgui
Я попробовал, и он кажется довольно стабильным, поддерживая точки останова и проверку переменных.
Это не полный набор (всего 4,1 Мб), но мне очень помог!
Как это работает: он интегрируется с вашим клиентом mysql (я использую Ubuntu 14.04), и после выполнения:
Он устанавливает новую базу данных на вашем сервере, которая контролирует процесс отладки. Так:
даст вам возможность шаг за шагом пройтись по вашему коду, и «обновив» ваши переменные, вы сможете лучше видеть, что происходит внутри вашего кода.
Важный совет: возможно при отладке вы измените (заново создадите процедуру). После повторного создания выполните: $ exit и $ setup перед новым $ debug
Это альтернатива методам "вставки" и "журнала". Ваш код не содержит дополнительных инструкций по отладке.
Скриншот:
источник
MySQL Connector / Net 6.6 имеет функцию отладки хранимых процедур и функций.
источник
MySql Connector / NET также включает отладчик хранимых процедур, интегрированный в Visual Studio с версии 6.6. Вы можете получить установщик и исходный код здесь: http://dev.mysql.com/downloads/connector/net/
Некоторая документация / скриншоты: https://dev.mysql.com/doc/visual-studio/en/visual-studio-debugger.html
Вы можете следить за объявлениями здесь: http://forums.mysql.com/read.php?38,561817,561817#msg-561817
ОБНОВЛЕНИЕ: MySql для Visual Studio был отделен от Connector / NET в отдельный продукт, вы можете выбрать его (включая отладчик) здесь https://dev.mysql.com/downloads/windows/visualstudio/1.2.html (все еще бесплатно и с открытым исходным кодом).
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я был разработчиком, создавшим механизм отладчика хранимых процедур для MySQL для продукта Visual Studio.
источник
Первый и стабильный отладчик для MySQL находится в dbForge Studio for MySQL.
источник
Мне приходилось использовать два разных инструмента для отладки процедур и функций:
источник
Пользовательская переменная MySQL (совместно используемая в сеансе) может использоваться в качестве вывода журнала:
выведет:
источник
Жаба mysql. Есть бесплатная версия http://www.quest.com/toad-for-mysql/
источник
Ответ, соответствующий этому, от @Brad Parks Не уверен насчет версии MySQL, но у меня была 5.6, поэтому можно немного подправить:
Я создал функцию,
debug_msg
которая является функцией (а не процедурой) и возвращает текст (без ограничения символов), а затем вызываю функцию как SELECTdebug_msg
(params) ASmy_res_set
, код, как показано ниже:источник