plgpsql and transactions

Поиск
Список
Период
Сортировка
От Bill Moseley
Тема plgpsql and transactions
Дата
Msg-id 20060406183608.GA8518@hank.org
обсуждение исходный текст
Ответы Re: plgpsql and transactions  (Terry Lee Tucker <terry@esc1.com>)
Список pgsql-general
In a BEFORE INSERT trigger, depending on input values, I need to lock
a table and do a few selects.  Of course, the "lock table" isn't much
use if not currently in a transaction.

So my question is this:  can I tell if I'm inside a transaction or
not and issue a BEGIN if not.  And then also set a flag so that after
the INSERT I can detect that I issued a BEGIN and do a COMMIT?

Or, maybe better is to just throw an exception if not already inside a
transaction.

BTW -- it seems odd to me that you can issue a lock table outside of
an explicit begin/commit and not get a warning.  When would issuing a
lock table outside an explicit transaction be of any use?


--
Bill Moseley
moseley@hank.org


В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Unique constraint or index, case insensitive, on multiple fields
Следующее
От: Wayne Schroeder
Дата:
Сообщение: The dangers of long running open transactions