Re: Is there any different for foreign key to be serial instead of integer

From: Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com>
To: Richard Broersma <richard(dot)broersma(at)gmail(dot)com>
Cc: Yan Cheng Cheok <yccheok(at)yahoo(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Is there any different for foreign key to be serial instead of integer
Date: 2010-01-07 04:36:39
Message-ID: dcc563d11001062036m7d3bdcf8w51813a2bd7e0d5a1@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, Jan 6, 2010 at 9:08 PM, Richard Broersma
<richard(dot)broersma(at)gmail(dot)com> wrote:
> On Wed, Jan 6, 2010 at 7:51 PM, Yan Cheng Cheok <yccheok(at)yahoo(dot)com> wrote:
>
>
>> instead of let customer_id being type as integer, can i let it be serial? is there any difference?
>>
>> if the table referenced by customer_id is having primary key typed big serial, customer_id shall be declared as bigint ?
>
> This is a good section about the distinction between:
>
> serial -> integer
> bigserial -> bigint
>
> the short answer is that the serial type is actually is the datatype
> *integer* with the sequence generator attached to the default value of
> the column.
>
> So it only makes sense for primary key to be defined as serial.  A
> serial foreign key would be nonsensical since foreign keys should be
> be generating their own values.

Pretty sure the OP was talking about referencing a bigserial from a
foreign key, which makes perfect sense for certain types of mappings.
FKs don't generate their own values, they reference values in a PK or
unique field somewhere else really.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Richard Broersma 2010-01-07 04:39:57 Re: Is there any different for foreign key to be serial instead of integer
Previous Message Tom Lane 2010-01-07 04:23:31 Re: FULL JOIN is only supported with merge-joinable join conditions