Re: Changing referenced primary key column type

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Andrus Moor" <kobruleht2(at)hot(dot)ee>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Changing referenced primary key column type
Date: 2009-08-07 21:42:10
Message-ID: 392.1249681330@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Andrus Moor" <kobruleht2(at)hot(dot)ee> writes:
> 8.x Db contains tables
> create table ametikoh ( ametikoht numeric(7) NOT NULL DEFAULT
> nextval('firma1.ametikoh_ametikoht_seq'::regclass) primary key );
> create table iandmed ( ametikoht numeric(7) references ametikoh);

> I created conversion script which normalizes column types:

> alter table ametikoh alter column ametikoht type integer;
> alter table iandmed alter column ametikoht type integer;

> Running this script causes error:

> ERROR: foreign key constraint "iandmed_ametikoht_fkey" cannot be
> implemented
> DETAIL: Key columns "ametikoht" and "ametikoht" are of incompatible types:
> numeric and integer.

> How to create script which performs this change and works in 8.0+ ?

Drop the FK constraint and then add it back afterwards.

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2009-08-07 21:45:00 Re: [HACKERS] \copy: unexpected response (4)
Previous Message Neil Best 2009-08-07 21:21:27 Re: \copy: unexpected response (4)