Страница 1 из 1

О Транзакциях

Добавлено: 04 фев 2005, 14:26
bop
Скажите пожалуйста с каким уровнем изоляции должна быть транзакция что бы она не видила свои вставки/изменения
Ситуация сл. в таб1 идет вставка данных в результате которой сраб. триггер и делает изменения в таб2 в которой также выпю триг. и запускает процедуру которая должна просчитать количество в табл.1 до вставки породившей данную транзакцию (другими словами расчитать остаток на дату и время вставки).
Использую сл. параметры тр.
write
read_commit
rec_version
nowait (При этих параметрах у меня видятся вносимые данные, а этого мне не надо)

Если использовать Snapshot то боюсь что в результате работы процедуры будут бл. остальные пользователи т.к. происходит чтение и запись в теже таблицы.
Что посоветуете.

Re: О Транзакциях

Добавлено: 04 фев 2005, 14:54
Merlin
bop писал(а):Скажите пожалуйста с каким уровнем изоляции должна быть транзакция что бы она не видила свои вставки/изменения
Ни с каким.
bop писал(а): Ситуация сл. в таб1 идет вставка данных в результате которой сраб. триггер и делает изменения в таб2 в которой также выпю триг. и запускает процедуру которая должна просчитать количество в табл.1 до вставки породившей данную транзакцию (другими словами расчитать остаток на дату и время вставки).
Наводка нумер раз: триггеры бывают не только after, но и before. То иссь, если модификацию tabl2 выполнять в before триггере tabl1, то триггер tabl2 как раз и соберёт остаток до вставки.

Наводка нумер два: если before триггер tabl2 будет делать new.ostatok_do=old.ostatok_posle, то не надо будет шариться по tabl1 ваще.

Re: О Транзакциях

Добавлено: 04 фев 2005, 15:18
bop
Наводка нумер раз: триггеры бывают не только after, но и before. То иссь, если модификацию tabl2 выполнять в before триггере tabl1, то триггер tabl2 как раз и соберёт остаток до вставки.
Спасибо помогло в таб1 тригер был на Afte
Наводка нумер два: если before триггер tabl2 будет делать new.ostatok_do=old.ostatok_posle, то не надо будет шариться по tabl1 ваще.

Неподойдет т.к. нужновычислять на дату, а не последний имеемый.