Re: null foreign key column - Mailing list pgsql-sql
From | Dmitry Tkach |
---|---|
Subject | Re: null foreign key column |
Date | |
Msg-id | 3E4AE482.8000908@openratings.com Whole thread Raw |
In response to | Re: null foreign key column (Vernon Wu <vernonw@gatewaytech.com>) |
List | pgsql-sql |
Vernon Wu wrote: >12/02/2003 2:24:49 PM, Dmitry Tkach <dmitry@openratings.com> wrote: > > > >>You don't want it to be serial - just make it 'person_id in' >> >> > >Any reasons? > > Yeah... Two of them: - It does not make sense for a serial column to reference other tables - the only purpose of serial is to generate unique keys, in your case you do not want them generated, but rather copied from the entries in the referenced table. - The other reason is that 'serial' implies 'not null' - that is why your insert statement fails. Dima > > >>I hope, it helps... >> >>Dima >> >>Arunachalam Jaisankar wrote: >> >> >>>This is a multi-part message in MIME format. >>> >>>------=_NextPart_000_0005_01C2D1EE.61998D70 >>>Content-Type: text/plain; >>> charset="iso-8859-1" >>>Content-Transfer-Encoding: quoted-printable >>> >>>Hi all, >>> >>>I would like to have a foreign key column in my table which allows null val= >>>ue also. >>>But the below create table sql command doesn't accept null value for person= >>>_id. >>>How to do in postgres? >>> >>>create table event >>>( >>> event_id serial not null, >>> event_description char(255) , >>> person_id serial , >>> primary key (event_id), >>> foreign key (person_id) >>> references person (person_id) >>>); >>> >>>regards >>>Jai >>>------=_NextPart_000_0005_01C2D1EE.61998D70 >>>Content-Type: text/html; >>> charset="iso-8859-1" >>>Content-Transfer-Encoding: quoted-printable >>> >>><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> >>><HTML><HEAD> >>><META http-equiv=3DContent-Type content=3D"text/html; charset=3Diso-8859-1"> >>><META content=3D"MSHTML 6.00.2800.1106" name=3DGENERATOR> >>><STYLE></STYLE> >>></HEAD> >>><BODY bgColor=3D#ffffff> >>><DIV><FONT face=3DArial size=3D2>Hi all,</FONT></DIV> >>><DIV><FONT face=3DArial size=3D2></FONT> </DIV> >>><DIV><FONT face=3DArial size=3D2>I would like to have a foreign key column = >>>in my=20 >>>table which allows null value also.</FONT></DIV> >>><DIV><FONT face=3DArial size=3D2>But the below create table sql command doe= >>>sn't=20 >>>accept null value for person_id.</FONT></DIV> >>><DIV><FONT face=3DArial size=3D2>How to do in postgres?</FONT></DIV> >>><DIV><FONT face=3DArial size=3D2></FONT><FONT face=3DArial size=3D2></FONT>= >>> </DIV> >>><DIV><FONT face=3DArial size=3D2>create table event<BR>(<BR> &nb= >>>sp;=20 >>>event_id &= >>>nbsp; =20 >>>serial &nb= >>>sp; =20 >>>not null,<BR> event_description &n= >>>bsp;=20 >>>char(255) = >>> =20 >>>,<BR> =20 >>>person_id = >>> =20 >>>serial &nb= >>>sp; =20 >>>,<BR> primary key (event_id),<BR> forei= >>>gn=20 >>>key (person_id)<BR> references pe= >>>rson=20 >>>(person_id)<BR>);</FONT></DIV> >>><DIV><FONT face=3DArial size=3D2></FONT> </DIV> >>><DIV><FONT face=3DArial size=3D2>regards</FONT></DIV> >>><DIV><FONT face=3DArial size=3D2>Jai</FONT></DIV></BODY></HTML> >>> >>>------=_NextPart_000_0005_01C2D1EE.61998D70-- >>> >>> >>> >>---------------------------(end of broadcast)--------------------------- >>TIP 2: you can get off all lists at once with the unregister command >> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) >> >> >> > > > >