Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > Запретить удаление последней записи


Автор: bems 22.1.2008, 18:46
interbase 6, IBX

Сделал сабж в лоб и некоторое время казалось, что работает. Но потом проявился такой случай:
есть две транзакции, обе read committed
в таблице есть две записи.

Первая транзакция удаляет запись.
Вторая транзакция удаляет другую запись и делает commit
Первая транзакция делает commit.

в итоге в таблице не остается ни одной записи, чего быть не должно.
Может есть способ пощитать количество записей не залоченых другой транзакцией?

Автор: Deniz 23.1.2008, 06:12
Сократить время транзакции.
Выполнять удаление в ХП с проверкой кол-ва записей.
Перед Commit проверять кол-во записей.

Если к записи никаких логических требований нет, то больше предложить нечего.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)