Search Postgresql Archives

Re: Recursive FOREIGN KEY?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is possible and works as expected but did require a mild
work-around ...

CREATE TABLE categories (
  categoryID integer PRIMARY KEY,
  parentID integer,
  setID integer REFERENCES categories_sets (setID) ON DELETE CASCADE,
  name char(255) NOT NULL
);
                                                                                
INSERT INTO categories VALUES (0,0,0,'DEFAULT');
                                                                                
CREATE INDEX categories_parentID ON categories (categoryID);
CREATE INDEX categories_setID ON categories (setID);
                                                                                
ALTER TABLE categories
   ADD CONSTRAINT categories_parentID
   FOREIGN KEY (parentID) REFERENCES categories (categoryID) ON DELETE
CASCADE;


I had to insert the initial record and then add the foreign key
restraint after inserting the initial record was created (0 being the
first level of the category structure) - deletes cascade recursively as
expected (sweet).

Thanks!

--Joe
 

On Sat, 2004-04-03 at 19:46, Joe Stump wrote:
> I have a table that will have a parent/child relationship (specifically
> a recursive collection of categories) and was wondering if I can
> reference a key in the same table ...
> 
> CREATE TABLE categories (
>   categoryID integer PRIMARY KEY,
>   parentID integer REFERENCES categories (categoryID) ON DELETE CASCADE,
>  
>   ...
> );
> 
> Is this supported? Any comments from people out there who have created
> such setups? I'm new to PGSQL and looking hard at converting from MySQL
> so all of these fun features are new to me :)
> 
> Thanks!
> 
> --Joe
> 
> --
> Joe Stump, President
> JCS Solutions
> http://www.jcssolutions.com
> (734) 786 0176 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
-- 
--
Joe Stump, President
JCS Solutions
p. (734) 786 0176
f. (520) 844 9344
http://www.jcssolutions.com 


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faqs/FAQ.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux