powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / словить ошибку динамического SQL
6 сообщений из 6, страница 1 из 1
словить ошибку динамического SQL
    #39600709
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем.

MySQL 5.6
В цикле по метаданным дропаю FK, меняю тип ,востанавливаю FK

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
DECLARE CURSOR1 CURSOR FOR 
SELECT table_name, sql_restore_FK 
FROM  Tmp_Fk_list  
WHERE sql_restore_FK  is Not NULL
ORDER BY table_name
;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN CURSOR1;
MAIN_LOOP: LOOP
SET @sql1 = v_sql ;
# SELECT  @sql1;
PREPARE stmt FROM @sql1;
EXECUTE stmt;



1?) Можно ли словить ошибку
SHOW ERRORS;
SELECT @@error_count;

видеть да вижу - а как в переменную записать

2?) Как можно игнориовать ошибку - т.е хотчу отвлоить записать в лог-таблицу и продолжить выполнение
чтобы записать все ошибки а не прерываться на 1-й из них.
...
Рейтинг: 0 / 0
словить ошибку динамического SQL
    #39601546
LiveMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гулин Федор, https://dev.mysql.com/doc/refman/5.6/en/declare-handler.html

пишите continue handler, который будет писать в лог.
...
Рейтинг: 0 / 0
словить ошибку динамического SQL
    #39601684
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiveManГулин Федор, https://dev.mysql.com/doc/refman/5.6/en/declare-handler.html

пишите continue handler, который будет писать в лог.

СПАСИБО - наверно то что надо
почитал - но допустим я не знаю какая ошибка

у меня в цикле уже есть
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

SQLEXCEPTION: Shorthand for the class of SQLSTATE values that do not begin with '00', '01', or '02'.

я должен описать
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;

DECLARE CONTINUE HANDLER FOR SQLWARNING BEGIN END;

и в эти 2 хендлера попадут ВСЕ возможные ошибки ?
...
Рейтинг: 0 / 0
словить ошибку динамического SQL
    #39601701
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федоря должен описать
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;

DECLARE CONTINUE HANDLER FOR SQLWARNING BEGIN END;

и в эти 2 хендлера попадут ВСЕ возможные ошибки ?Нет, нужны три хэндлера: SQLWARNING (01), NOT FOUND (02) и SQLEXCEPTION (>02).
...
Рейтинг: 0 / 0
словить ошибку динамического SQL
    #39601814
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

СУПЕР Спасибо
а сам текст ошибки отловить можно ?
...
Рейтинг: 0 / 0
словить ошибку динамического SQL
    #39601815
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гулин Федора сам текст ошибки отловить можно ?Ну разве что через SHOW ERRORS...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / словить ошибку динамического SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]