I tried setting a foreign_key constraint on item_parent referencing item_id but it wouldn't work. Then I tried a pl/pgsql function to update item_parent with a trigger on item_id. Couldn't figure out how to pass the old and new values to/from the trigger.
CREATE SEQUENCE Person_seq START 2;\n\nCREATE TABLE Person (\n P_ID integer DEFAULT nextval('Person_seq') PRIMARY KEY,\n P_FName varchar(20) NOT NULL,\n P_MName varchar(1) NULL,\n P_LName varchar(20) NOT NULL,\n[Some fields edited for brevity]\n P_CreatedBy integer REFERENCES Person(P_ID) NOT NULL,\n P_EditedDate datetime NOT NULL,\n P_EditedBy integer REFERENCES Person(P_ID) NOT NULL\n);That's the SQL I'm using to create a Person table in a PostgreSQL 7.2 database. It's got a foreign key reference to an item in the same table, which appears to be what you're after.
If that's not what you're looking for, I might need a bit of a more detailed explanation...
HTH.