Обсуждение: defferable update & unique

Поиск
Список
Период
Сортировка

defferable update & unique

От
"Ben-Nes Michael"
Дата:
Hi All

Does 7.4 support defferable updates on unique column ?

example

unique INT colum named u_test has the following values: 1, 2, 3, 4, 5

can i do update table set u_test = u_test + 1;

cheers
--------------------------
Canaan Surfing Ltd.
Internet Service Providers
Ben-Nes Michael - Manager
Tel: 972-4-6991122
Fax: 972-4-6990098
http://www.canaan.net.il
--------------------------


Re: defferable update & unique

От
Stephan Szabo
Дата:
On Wed, 19 Nov 2003, Ben-Nes Michael wrote:

> Does 7.4 support defferable updates on unique column ?

Not yet, and I'm not sure if any work is actively being done on it
(although some discussions on ways to handle it have happened fairly
recently)

Re: defferable update & unique

От
Bruce Momjian
Дата:
Ben-Nes Michael wrote:
> Hi All
>
> Does 7.4 support defferable updates on unique column ?
>
> example
>
> unique INT colum named u_test has the following values: 1, 2, 3, 4, 5
>
> can i do update table set u_test = u_test + 1;

No, this is on our TODO list.  Also, I can't think of a workaround.  :-(

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: defferable update & unique

От
Stephan Szabo
Дата:
On Wed, 19 Nov 2003, Bruce Momjian wrote:

> Ben-Nes Michael wrote:
> > Hi All
> >
> > Does 7.4 support defferable updates on unique column ?
> >
> > example
> >
> > unique INT colum named u_test has the following values: 1, 2, 3, 4, 5
> >
> > can i do update table set u_test = u_test + 1;
>
> No, this is on our TODO list.  Also, I can't think of a workaround.  :-(

If negative values aren't allowed normally, I think you can do it in an
ugly fashion through two updates, something like:

update table set u_test=-u_test-1;
update table set u_test=-u_test;


Re: defferable update & unique

От
Greg Stark
Дата:
"Ben-Nes Michael" <miki@canaan.co.il> writes:

> Does 7.4 support defferable updates on unique column ?

no



--
greg

Re: defferable update & unique

От
Bruce Momjian
Дата:
Stephan Szabo wrote:
> On Wed, 19 Nov 2003, Bruce Momjian wrote:
>
> > Ben-Nes Michael wrote:
> > > Hi All
> > >
> > > Does 7.4 support defferable updates on unique column ?
> > >
> > > example
> > >
> > > unique INT colum named u_test has the following values: 1, 2, 3, 4, 5
> > >
> > > can i do update table set u_test = u_test + 1;
> >
> > No, this is on our TODO list.  Also, I can't think of a workaround.  :-(
>
> If negative values aren't allowed normally, I think you can do it in an
> ugly fashion through two updates, something like:
>
> update table set u_test=-u_test-1;
> update table set u_test=-u_test;

Excellent idea. You might want to add a VACUUM in there:

> update table set u_test=-u_test-1;
> VACUUM
> update table set u_test=-u_test;
> VACUUM

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: defferable update & unique

От
"Ben-Nes Michael"
Дата:
i found a workaround, but relativly slow.

The column is not unique and when the update is finished i fire up a trigger
that check for uniqueness.

lets wait for pg7.5 :)

--------------------------
Canaan Surfing Ltd.
Internet Service Providers
Ben-Nes Michael - Manager
Tel: 972-4-6991122
Fax: 972-4-6990098
http://www.canaan.net.il
--------------------------
----- Original Message -----
From: "Bruce Momjian" <pgman@candle.pha.pa.us>
To: "Ben-Nes Michael" <miki@canaan.co.il>
Cc: "postgresql" <pgsql-general@postgresql.org>
Sent: Wednesday, November 19, 2003 6:39 PM
Subject: Re: [GENERAL] defferable update & unique


> Ben-Nes Michael wrote:
> > Hi All
> >
> > Does 7.4 support defferable updates on unique column ?
> >
> > example
> >
> > unique INT colum named u_test has the following values: 1, 2, 3, 4, 5
> >
> > can i do update table set u_test = u_test + 1;
>
> No, this is on our TODO list.  Also, I can't think of a workaround.  :-(
>
> --
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman@candle.pha.pa.us               |  (610) 359-1001
>   +  If your life is a hard drive,     |  13 Roberts Road
>   +  Christ can be your backup.        |  Newtown Square, Pennsylvania
19073
>