Re: Error on deleting - Mailing list pgadmin-support

From Dave Page
Subject Re: Error on deleting
Date
Msg-id 03AF4E498C591348A42FC93DEA9661B889F906@mail.vale-housing.co.uk
Whole thread Raw
In response to Error on deleting  (Indibil <indibil@webmail.co.za>)
List pgadmin-support
Hi Indibil

Yes, that is what I suspected was the problem. pgAdmin II cannot
properly recognise multi-column primary keys. I would normally suggest
upgrading to pgAdmin III, but as you said your app was running on
PostgreSQL 7.2 I did not bother.

Unfortunately the only ways around this are going to be:

1) Grab the pgAdmin II source code and fix it (not an easy task which is
why I never did it).
2) Upgrade your server to 7.4.2 and using pgAdmin III.
3) Manually delete rows using an explicit SQL command.

Regards, Dave.

> -----Original Message-----
> From: Indibil [mailto:indibil@webmail.co.za]
> Sent: 31 March 2004 17:08
> To: pgadmin-support@postgresql.org
> Subject: Re: [pgadmin-support] Error on deleting
>
> Hi David:
>
> I have another server with PostgreSQL 7.3 so,  I dumped the
> PostgreSQL 7.2 database and restored it in 7.3. With
> pgAdmin_II I get the same error when I try to delete a record
> from the table "escritos". This table has a primary key with
> two fields: "cod_ficha", "cod_estado". If, for example, I
> select the records:
>
> cod_ficha       cod_estado
> ------------    ---------------
> 2003000001      0001
> 2003000001      0023
>
> When I try to delete only one of them, I get the message:
> "The selected record could not be uniquely identified, 2
> records match, and will all be deleted if you proceed. Do you
> wish to continue?".
>
> The last lines in the pg_adminII.log are:
> SELECT count(*) AS count FROM public.escritos WHERE
> cod_ficha=2003000001 DELETE public.escritos WHERE cod_ficha=2003000001
>
> I think the problem is in the DELETE statement because the
> WHERE condition must be: ....... WHERE cod_ficha=2003000001
> AND cod_estado='0023'
>
> Whith pgAdmin III there is no problem on deleting because it
> issues the following deleting statement:
> DELETE public.escritos WHERE oid=169858256
>
>
> Thanks a lot for your interest David,
>
> Indibil
>
>
> Dave Page wrote:
>
> > It's rumoured that Indibil once said:
> >> Hi:
> >>
> >> I have a PostgreSQL 7.2.2 database since 2 years working
> right until
> >> now. When I try to delete a row from pgAdmin II , I get
> the message "
> >> ....cannot uniquely identify, 2 rows match....." If I go
> on deleting
> >> the row, the 2 ones are deleted. Of Course the 2 rows don't match.
> >> They have different primary key, OIDs, and so on.
> >
> > Hmm, can you re-create this with logging set to errors +
> sql please?
> > Then send the logfile...
> > Regards, Dave
> >
> >
> >
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 8: explain analyze is your friend
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 9: the planner will ignore your desire to choose an index
> scan if your
>       joining column's datatypes do not match
>


pgadmin-support by date:

Previous
From: Indibil
Date:
Subject: Re: Error on deleting
Next
From: "Santhosh"
Date:
Subject: Fw: tips pls.