SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 11.01.2013 19:59:00

dead
Участник
Зарегистрирован: 16.08.2008
Сообщений: 14

Правильна ли транзакция

Прошу гуру ответить правильно ли я оформил транзакцию чтобы сохранить целостность?

Таблица с двумя полями int:
id - id объекта
parent - id родительского объекта (в этой же таблице)

Две транзакции: добавление ребенка и удаление родителя. Целостность может быть нарушена, если удаляется родитель, у которого есть дети либо же создается ребенок, у которого параллельно удалили родителя.

Создание ребенка:

start transaction;
select id from test where id=1 for update;
Если select вернул пустой результат, то rollback
insert into test set parent=1;
commit;

Удаление родителя:

start transaction;
delete from test where id=1;
select id from test where parent=1;
Если select вернул пустой результат, то rollback
commit;

Все ли ок?

Неактивен

 

Board footer

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