Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL и транзакции / 6 сообщений из 6, страница 1 из 1
10.02.2014, 18:00:31
    #38556125
Hel975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и транзакции
Надо написать маленькую процедурку с использованием транзакции, полноценного примера не нашла, хотя все вроде просто. Алгоритм такой: начинаем транзакцию, удаляем данные из таблицы 1, затем из таблицы 2 переносим данные в таблицу 1, если все ок, то commit, если ошибка, то rollback. Как в MySQL считывать ошибку при инсерте, чтобы потом сделать commit или rollback? Пишу на MSSQL, а тут понадобилось на MYSQL сделать.
...
Рейтинг: 0 / 0
10.02.2014, 22:00:38
    #38556351
Hel975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и транзакции
Удалось написать такую процедуру, но ругается на синтаксис. Версия MySQL 5.5, таблицы на InnoDB.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
drop procedure if exists sp_TransferBufToSvcus


create procedure sp_TransferBufToSvcus(OUT ret TINYINT)
begin
declare exit handler for not found rollback;
declare exit handler for sqlwarning rollback;
declare exit handler for sqlexception rollback;

set ret=0;
start transaction;

delete from svcus1 where cusnum <= 10000;

insert into svcus1
select *
from Bufsvcus;

commit;

set ret = 1;
end;
...
Рейтинг: 0 / 0
10.02.2014, 23:00:41
    #38556386
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и транзакции
Hel975,

delimiter не забыли?
...
Рейтинг: 0 / 0
11.02.2014, 06:27:36
    #38556558
Hel975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и транзакции
miksoft,

Может и забыла. Куда поставить? Я же говорю, сами мы не местные, пишем на MSSQL...
...
Рейтинг: 0 / 0
11.02.2014, 08:40:33
    #38556614
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и транзакции
Код: sql
1.
2.
3.
DELIMITER @@ -- или любая другая последовательность
-- текст создания процедуры
DELIMITER ; -- восстановление ограничителя


Примеры тут
...
Рейтинг: 0 / 0
11.02.2014, 08:42:07
    #38556615
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MySQL и транзакции
Hel975ругается на синтаксис.Даже неместные должны понимать, что сообщение об ошибке следует цитировать. Дословно. Вплоть до количества пробелов и мест перевода строк.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL и транзакции / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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