pk vs unique not null differences between 8.3.4 and 8.3.8

Started by Ivan Sergio Borgonovoover 16 years ago3 messagesgeneral
Jump to latest
#1Ivan Sergio Borgonovo
mail@webthatworks.it

I prepared a script to upgrade the schema in a 8.3.8 dev box and now
I was trying to replicate the change in a staging 8.3.4 box... and
it failed.

I don't have a recent backup of my dev box so I can't check if I'm
day dreaming.

This statement succede in 8.3.8
alter table shop_commerce_gift drop constraint
shop_commerce_gift_pkey;

but failed in 8.3.4.

I checked the table def in the 8.3.4 and it reports:

giftcode | character varying(16) | not null
...
Indexes:
"shop_commerce_gift_giftcode_key" UNIQUE, btree (giftcode)

but then when I try to drop the index... pg says that the index is
needed for shop_commerce_gift_giftcode_key constraint

was it something that was fixed between the releases or I just
didn't take note of what I really did in the staging box?

btw I was using the same pgsql version from my desktop to \d the
tables.

--
Ivan Sergio Borgonovo
http://www.webthatworks.it

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ivan Sergio Borgonovo (#1)
Re: pk vs unique not null differences between 8.3.4 and 8.3.8

Ivan Sergio Borgonovo <mail@webthatworks.it> writes:

This statement succede in 8.3.8
alter table shop_commerce_gift drop constraint
shop_commerce_gift_pkey;
but failed in 8.3.4.

Uh, that doesn't seem to match the name of the index?

Indexes:
"shop_commerce_gift_giftcode_key" UNIQUE, btree (giftcode)

regards, tom lane

#3Ivan Sergio Borgonovo
mail@webthatworks.it
In reply to: Tom Lane (#2)
Re: pk vs unique not null differences between 8.3.4 and 8.3.8

On Mon, 02 Nov 2009 09:53:06 -0500
Tom Lane <tgl@sss.pgh.pa.us> wrote:

Ivan Sergio Borgonovo <mail@webthatworks.it> writes:

This statement succede in 8.3.8
alter table shop_commerce_gift drop constraint
shop_commerce_gift_pkey;
but failed in 8.3.4.

Uh, that doesn't seem to match the name of the index?

Yep... that was my surprise.

I don't have a time machine to be absolutely sure about what I did
but I should have created a pk on both machines with a
create table shop_commerce_gift(
giftcode varchar primary key
...
);

but in the newer pg I actually find the pk constraint... in the
older I find a not null + an unique index with a different name from
the pk name of the former.

--
Ivan Sergio Borgonovo
http://www.webthatworks.it