Re: unique & update

From: "Mourad EL HADJ MIMOUNE" <mimoune(at)ensma(dot)fr>
To: "Ben-Nes Michael" <miki(at)canaan(dot)co(dot)il>, "Frank Schafer" <frank(dot)schafer(at)setuza(dot)cz>, <pgsql-general(at)postgresql(dot)org>
Subject: Re: unique & update
Date: 2002-01-29 15:14:39
Message-ID: 001101c1a8d7$abd4a780$71a337c1@ensma.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I Think you must use transaction.
transaction can start by Begin work and finish by end.
There is no constraint checks within a trasaction. Try this it does work.
Mourad.
----- Original Message -----
From: "Ben-Nes Michael" <miki(at)canaan(dot)co(dot)il>
To: "Frank Schafer" <frank(dot)schafer(at)setuza(dot)cz>;
<pgsql-general(at)postgresql(dot)org>
Sent: Tuesday, January 29, 2002 2:52 PM
Subject: Re: [GENERAL] unique & update

>
> > On Tue, 2002-01-29 at 13:38, Ben-Nes Michael wrote:
> > > Hi All
> > >
> > > Im into SQL trees trying to work with CELKO way to do it:
> > > http://www.intelligententerprise.com/001020/celko.shtml
> > >
> > > The problem is that if I try to add a new descendent which is not the
> most
> > > right sibling I get UNIQUE error.
> > >
> > > This occur ( if im right ) when the update try to update the lft
column
> > > which is UNIQUE
> > >
> > > Example of table:
> > >
> > > CREATE TABLE areas (
> > > lft INT UNIQUE
> > > );
> >
> > O.K. ... we used a column constraint ...
> >
> > > I inserted 3 rows with value: 1, 2, 3
> >
> > ... everything is unique, so all is fine ...
> >
> > > now im trying to update:
> > > update areas set lft = lft +1;
> >
> > ... update works on the first row, so the table would be 2, 2, 3 ...
> >
> > > Then I get the UNIQUE problem.
> >
> > ... what is exectly what the unique constraint is for.
> >
> > > Is there a way to do UNIQUE check after the whole table got updated ?
> > > If not, any ideas to walk around the problem ?
> >
> > Try:
> > CREATE TABLE areas (
> > UNIQUE ( lft ),
> > lft INT
> > );
>
> I tried your syntax and the following with no success ( same problem)
> CREATE TABLE areas (
> lft INT,
> CONSTRAINT testunique UNIQUE ( lft )
> );
>
> >
> > Then we have a table with a table constraint.
> > I'm only guessing ( using ``\h CREATE TABLE'' on the psql prompt ) and
> > I'm a PostgreSQL -- and in fact SQL -- newbie, but if I'm interpreting
> > the syntax diagram and MY mind about these constraints right, this
> > should do what you need.
> >
> > Regards
> > Frank
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Jeff Eckermann 2002-01-29 15:22:40 Re: numeric SORT order
Previous Message Mourad EL HADJ MIMOUNE 2002-01-29 14:57:20 use of Ececute commande with PSQL