Re: Catching errors inside a function
От | Francesco Casadei |
---|---|
Тема | Re: Catching errors inside a function |
Дата | |
Msg-id | 20010904200308.B3650@goku.kasby обсуждение исходный текст |
Ответ на | Re: Catching errors inside a function (Alvaro Herrera <alvherre@atentus.com>) |
Список | pgsql-general |
On Mon, Sep 03, 2001 at 03:47:35PM -0400, Alvaro Herrera wrote: > On Mon, 3 Sep 2001, Francesco Casadei wrote: > > > I want to execute an INSERT query that may fail due to a primary key constraint > > check. The primary key is on a field whose value is generated randomly by > > another C function. > > Wouldn't it be easier if you just used a sequence to generate the > primary key, if you just want uniqueness? > > > Is it possible to wrap the insert into a function that checks for failures and > > retry the insert until success? Something like this: > > > > function blah > > { > > do { > > cod = generate code; > > execute insert with cod as primary key; > > } while (! errors); > > } > > Any error will abort the transaction. You can't avoid this. Perhaps you > can try inserting the value outside the transaction, and then open it to > do whatever you want with the value inserted. > > > Is there a way to disable this behaviour? > > No. > > -- > Alvaro Herrera (<alvherre[@]atentus.com>) > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://www.postgresql.org/search.mpl > > end of the original message Mmmmm... I don't remember why I chose not to use a sequence! Actually, it seems to me a good idea. I will think about it. Thank you for your suggestion. Francesco Casadei
В списке pgsql-general по дате отправления: