Задавайте вопросы, мы ответим
Вы не зашли.
Прошу гуру ответить правильно ли я оформил транзакцию чтобы сохранить целостность?
Таблица с двумя полями 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;
Все ли ок?
Неактивен