SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.04.2008 13:20:12

EugeneTM
Гуру
Зарегистрирован: 11.04.2008
Сообщений: 89

Обработка ошибок при транзакции

Примерчик бы живой.

Хочется в процедуре стартовать транзакцию, попытаться ее COMMIT, посмотреть что нибудь типа кода ошибки.
В зависимости от него сделать то, что считаю нужным.

MySQL 5.1
В документации и на mysql.com ничего

в гугле только что-то типа
http://forums.mysql.com/read.php?97,194752,194752
вопросы про почему не работает без ответа.

Неактивен

 

#2 11.04.2008 13:35:09

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Обработка ошибок при транзакции

А можете привести пример кода, который генерит ошибку на этапе COMMIT?

По-моему, ошибку Вы получите гораздо раньше:

Код:

mysql> set transaction isolation level repeatable read;
Query OK, 0 rows affected (0.03 sec)

mysql> create table zzz (a int primary key) engine=innodb;
Query OK, 0 rows affected (0.29 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into zzz values (1), (2), (3);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from zzz;
+---+
| a |
+---+
| 1 | 
| 2 | 
| 3 | 
+---+
3 rows in set (0.00 sec)

-- в другом клиенте вставляем значение 4 --

mysql> insert into zzz values (4);
ERROR 1062 (23000): Duplicate entry '4' for key 1
mysql> select * from zzz;
+---+
| a |
+---+
| 1 | 
| 2 | 
| 3 | 
+---+
3 rows in set (0.03 sec)

Неактивен

 

#3 11.04.2008 14:02:26

EugeneTM
Гуру
Зарегистрирован: 11.04.2008
Сообщений: 89

Re: Обработка ошибок при транзакции

Понятно

и как подобное обработать ?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson