Re: Referencing Problem/bug? - Mailing list pgsql-general

From Dennis Gearon
Subject Re: Referencing Problem/bug?
Date
Msg-id 3E84D313.4020204@cvc.net
Whole thread Raw
In response to Referencing Problem/bug?  (J A Stride <j.a.stride@ncl.ac.uk>)
List pgsql-general
If you format the table deffintions like this:

create table name(
col1_name col1_type col1_qualifiers,
col2_name col2_type col2_qualifiers
);

-----OR EVEN BETTER------

create table name(
    col1_name col1_type col1_qualifiers,
    col2_name col2_type col2_qualifiers
);


You will get more takers for helping you.

J A Stride wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I have a problem with referencing keys. I have several tables:
>
> Resource table with a unique serial:
>
> create table resource (id bigserial not null unique, type int, units int not
> null, stdrate int not null default 0, projectid bigint references project(id)
> on update cascade on delete cascade not null, notes varchar, primary key
> (id));
>
> A person resource that inherits from the resource:
>
> create table personresource (personid bigint references person(id) on update
> cascade on delete cascade not null,primary key (projectid,personid)) inherits
> (resource);
>
> A resource group:
>
> create table resourcegroup (id bigserial not null unique, projectid bigint
> references project(id) on update cascade on delete cascade not null, personid
> bigint references person(id) on update cascade on delete cascade not null,
> name varchar not null, primary key(projectid, name));
>
> A cross reference table that contains all the resources in the resource group:
>
> create table resourcegroupxref (resourcegroupid bigint references
> resourcegroup(id) on update cascade on delete cascade not null, resourceid
> bigint references resource(id) on update cascade on delete cascade not null,
> primary key(resourcegroupid,resourceid));
>
> However if I do an insert into the person resource (which means that there is
> a value in the resource table) and the resource group I cannot put the id's
> from the insert's into the cross reference table as it fails with:
>
> ERROR:  <unnamed> referential integrity violation - key referenced from
> resourcegroupxref not found in resource
>
> Is there a reason that I am missing as to why I cannot reference a value in a
> table that is inherited from?
>
> Thanks
>
> Jake
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.0.7 (GNU/Linux)
>
> iD8DBQE+hNDZIxynSpxMjtERAnhKAKCx5xwbZ9wnBBVLz4Sqmn+C6ribPQCgvMDD
> Sgn0u97/rlK1DMxSx5JqCY0=
> =AfQ7
> -----END PGP SIGNATURE-----
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>


pgsql-general by date:

Previous
From: "Chris Smith"
Date:
Subject: Re: Please help with this error message
Next
From: Stephan Szabo
Date:
Subject: Re: Referencing Problem/bug?