Re: REFERENCES constraint

Поиск
Список
Период
Сортировка
От Jan Wieck
Тема Re: REFERENCES constraint
Дата
Msg-id 200108081750.f78HoqJ11933@jupiter.us.greatbridge.com
обсуждение исходный текст
Ответ на Re: REFERENCES constraint  ("Josh Berkus" <josh@agliodbs.com>)
Ответы Re: REFERENCES constraint
Список pgsql-sql
Josh Berkus wrote:
> Cedar,
>
> > 1. Can a column reference more than one table?  (This assumes you use
> > a
> > single sequence to generate the IDs for both "tbla" and "tblb".  I
> > guess
> > you would also have the problem of enforcing a unique index.  Say
> > what?!
> > A unique index across multiple tables.. absurd :)  eg..
> >
> >   CREATE TABLE blah (
> >     id int4,
> >     f_id int4 REFERENCES tbla (id) REFERENCES tblb (id)
> >   )
>
> I'd reccomend, instead, having blah reference tbla and tbla reference
> tblb.  It'd have the same effect, without forcing you to monkey around
> with custom triggers.
   Nobody  said  that  primary  keys  are  limited to the serial   datatype. So in case that tbla and tblb could have
different  sets  of keys with a possible intersection, and further given   that blah.f_id shall  be  limited  to
values both  have  in   common, there's no other way than having multiple foreign key   constraints on that one
column.
   Thus, it is possible. I'm not sure if  the  above  syntax  is   supported,  but  at  least you can put table level
CONSTRAINT  clauses into the statement and/or add the  constraints  later   with ALTER TABLE.
 

>
> > 2. Can a column reference another column in the same table?  eg..
> >
> >   CREATE TABLE bloo (
> >     id int4,
> >     p_id int4 REFERENCES bloo (id)
> >   -- or
> >   --p_id int4 REFERENCES (id)
> >   )
>
> Er ... why would you want to?
   To  build  a  tree  structure  of nodes. Root nodes have p_id   (meaning parent-id I guess) set to NULL, all others
musthave   an  existing node as parent.  Together with ON DELETE CASCADE   it'd build  an  expert-directory-structure
(experts usually   have "alias rm='/bin/rm -rf'" in their .profile, you know).
 
   Again, since it makes sense it is possible.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com



В списке pgsql-sql по дате отправления:

Предыдущее
От: "Grigoriy G. Vovk"
Дата:
Сообщение: Re: Functions returning more than one value
Следующее
От: Stephan Szabo
Дата:
Сообщение: Re: REFERENCES constraint