Что такое mysql-эквивалент ошибки @@ Identity и @@ Sql Server и как использовать try catch в mysql - PullRequest
3 голосов
/ 05 апреля 2010

Я ищу несколько глобальных переменных в MySQL, которые эквивалентны SQL Server.

Я хочу весь список например.

Серверный Эквивалент Sql

@@error ---

@@Identity ---

и т.д.

По сути, сейчас я хочу узнать, каковы эквивалентные переменные @@ error и @@ identity.

Но было бы полезно, если бы вы могли предоставить и другую переменную

1 Ответ

5 голосов
/ 05 апреля 2010

Последнее auto_increment значение (то есть последний идентификатор) , сгенерированное для текущего соединения, можно найти с помощью функции LAST_INSERT_ID().


Насчет ошибок, не уверен; похоже, что системная переменная не соответствует последнему сообщению об ошибке.

Существует выражение show errors:

mysql> select a from b;
ERROR 1046 (3D000): No database selected

mysql> show errors;
+-------+------+----------------------+
| Level | Code | Message              |
+-------+------+----------------------+
| Error | 1046 | No database selected | 
+-------+------+----------------------+
1 row in set (0,00 sec)

Но не уверен, как вы можете использовать этот результат ...


После поиска немного больше, я обнаружил эту ветку: Получение последнего сообщения об ошибке , в котором написано (цитирование) :

Я думаю, что должно быть что-то вроде @@last_error_id и @@last_error_message, но я не могу найти что-нибудь в текущем руководстве.

И первый ответ гласит (цитирование) :

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

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