X-Original-To: pgsql-sql@postgresql.org Received: from spampd.localdomain (postgresql.org [64.49.215.8]) by postgresql.org (Postfix) with ESMTP id AD1D5475956 for ; Mon, 12 May 2003 00:47:37 -0400 (EDT) Received: from smtp.blueyonder.co.uk (pc-62-31-245-49-gl.blueyonder.co.uk [62.31.245.49]) by postgresql.org (Postfix) with ESMTP id EE05D47580B for ; Mon, 12 May 2003 00:47:36 -0400 (EDT) Received: from reddragon.localdomain ([127.0.0.1]) by smtp.blueyonder.co.uk with esmtp (Exim 4.10) id 19F5E5-0001Kp-00; Mon, 12 May 2003 05:47:49 +0100 From: Peter Childs To: Adam Sherman , pgsql-sql@postgresql.org Subject: Re: Constraint Syntax Question Date: Mon, 12 May 2003 05:47:48 +0100 User-Agent: KMail/1.5 References: <7380000.1052691474@saturn> In-Reply-To: <7380000.1052691474@saturn> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200305120547.48775.Blue.Dragon@blueyonder.co.uk> X-Spam-Status: No, hits=-33.1 required=5.0 tests=BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, QUOTE_TWICE_1,REFERENCES,REPLY_WITH_QUOTES,USER_AGENT autolearn=ham version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) X-Archive-Number: 200305/212 X-Sequence-Number: 13377 On Sunday 11 May 2003 23:17, Adam Sherman wrote: > I have a many-to-many relationship between A & B where a B *must* relate to > at least 1 A but an A may have zero Bs. > > How do add this using an ALTER TABLE statement? You can't postgres enforces that the foreign key must be unique. so ALTER TABLE B ADD CONSTRAINT bafk FOREIGN KEY (key) REFERENCES A(key); looks like it should work by A(key) must be unique so you will get an error. I think that this is probably bad database design and you need to get you database into 1st normal form hense getting read of any many to many relations by removing any many to many relations. Find a good book on database design. I hope that helps Peter Childs > > Thanks, > > A. > > -- > Adam Sherman > Tritus CG Inc. > http://www.tritus.ca/ > +1 (613) 797-6819 > > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)