Обсуждение: pk vs unique not null differences between 8.3.4 and 8.3.8

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

pk vs unique not null differences between 8.3.4 and 8.3.8

От
Ivan Sergio Borgonovo
Дата:
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


Re: pk vs unique not null differences between 8.3.4 and 8.3.8

От
Tom Lane
Дата:
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

Re: pk vs unique not null differences between 8.3.4 and 8.3.8

От
Ivan Sergio Borgonovo
Дата:
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