Re: references table(multiple columns go here)
От | Tomasz Myrta |
---|---|
Тема | Re: references table(multiple columns go here) |
Дата | |
Msg-id | 3E01ADF1.5050003@klaster.net обсуждение исходный текст |
Ответ на | references table(multiple columns go here) (Gary Stainburn <gary.stainburn@ringways.co.uk>) |
Ответы |
Re: references table(multiple columns go here)
|
Список | pgsql-sql |
Gary Stainburn wrote: > On Thursday 19 Dec 2002 9:58 am, Tomasz Myrta wrote: > > >Gary Stainburn wrote: > > > >>That did the trick. However, I now have another problem with the > >>constraint > >>complaining about there not being an index to refer to. However, > >>there is. The error is inside declaration of table "ranks. You can't create two similiar foreign keys: one based on field (rrank) and second one based on fields (rdid,rrank). You have to change: jrank int4 not null references ranks(rrank), -- needs sorting to jrank int4 not null, -- needs sorting > This is probably because of my background in as a COBOL programmer where > having multiple fields of the same name can cause problems (especially > with > MF Cobol which only partially supports it) as well as early (read > early 80's) > database experince where it wasn't allowed. Also, I find it usefull > because > I know immediately which table a field has come from. As you wish. > > > Why does it make joins easier to use the same name for fields? If you create queries like this, you get rid of duplicates. select * from jobtypes join departments using (did) If you are afraid of duplicates, you can always use an alias: select ranks.rank_id as rid, ... If you want, here is my minimal version of your tables: create table depts ( dept_id int4 primary key, ... }; create table ranks ( rank_id int4 default nextval('ranks_rid_seq') primary key, dept_id int4 references depts, -- department rank int4 not null, -- departmental rank rdesc character varying(40) -- Rank Description ); create table jobtypes ( jobtype_id int4 default nextval('jobs_jid_seq') primary key, rank_id int4 references ranks(rank_id), jdesc character varying(40) -- job description ); Tomasz Myrta
В списке pgsql-sql по дате отправления: