|
Тема
|
after trigger и changes visibility
|
|
Автор | tosh (Нерегистриран) |
Публикувано | 29.06.05 14:22 |
|
имам after insert trigger на таблица, тригерът изпълнява външна команда, на която дава параметър - id-то на съответния запис.
проблемът е, че искам външната команда да има достъп до данните от insert-a, но тъй като явно данните стоят във "вътрешна транзакция" и не са видими за connection-ите към базата извън текущия тригер (поне докато не завършат всички тригери).
има ли някакво решение този проблем? не говоря за заобикаляне, а за решение.
в случая базата е postgresql, но проблемът е аналогичен и за другите СУБД :-)
| |
Тема
|
Re: after trigger и changes visibility
[re: tosh]
|
|
Автор |
Dakota (erotoman) |
Публикувано | 29.06.05 15:45 |
|
Предполагам, си прочел какво пише в ?
Everything louder than everything else...
| |
Тема
|
Re: after trigger и changes visibility
[re: tosh]
|
|
Автор |
phpGuru (член) |
Публикувано | 29.06.05 15:52 |
|
нормално е да не ги вижда, ако външната програма прави SELECT на данните
подавай ги дирекно на външната програма (както подаваш ID-то)
при някои бази може да стане със transaction isolation level Read uncommitted, но може и да не стане :-) при postgresql - няма да стане (http://www.postgresql.org/docs/8.0/interactive/transaction-iso.html#MVCC-ISOLEVEL-TABLE)
между другото ако го правиш със select то ще е доста бавно, дори да стане ....
| |
Тема
|
Re: after trigger и changes visibility
[re: tosh]
|
|
Автор |
wqw (непознат
) |
Публикувано | 29.06.05 19:31 |
|
Без да се съмнявам в удачността на подобен дизайн (може да е extended stored proc) обръщам внимание на sp_getbindtoken и sp_bindsession в MSSQL. Не е ясно дали ще виждаш inserted/deleted но със сигурност ще share-ваш lock space-а. Проблем може да е, че така bind-нати connection-ите сериализират работата си.
cheers,
</wqw>
| |
|
|
|
|