Re: CREATE TABLE with REFERENCE

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: CREATE TABLE with REFERENCE
Дата
Msg-id 20030728224751.K71835-100000@megazone.bigpanda.com
обсуждение исходный текст
Ответ на Re: CREATE TABLE with REFERENCE  (Rajesh Kumar Mallah <mallah@trade-india.com>)
Список pgsql-general
On Tue, 29 Jul 2003, Rajesh Kumar Mallah wrote:

> On Tuesday 29 Jul 2003 2:30 am, Stephan Szabo wrote:
> > On Tue, 29 Jul 2003, Rajesh Kumar Mallah wrote:
> > > Stephan Szabo wrote:
> > > >On Mon, 28 Jul 2003, kay-uwe.genz wrote:
> > > >>Second question. Is there a method of INSERT INTO both tables VALUES
> > > >>without group them in the same Transaction?
> > > >
> > > >You mean insert a row in each table that acts as the pk row for the
> > > > other?
> > > >
> > > >You could fake it by inserting one in with a NULL for the fk column
> > > >(unless they're both NOT NULL), inserting the other and then updating
> > > > the first.  Otherwise I think you need to be running in a single
> > > > transaction (although they could be grouped inside a function or as a
> > > > trigger for example).
> > >
> > > But isnt' foreign key constraints deferrable inside transactions?
> > > i vaugely remember doing it  . istn' it the best way of doing it?
> > > [ if at all it works :-) ]
> >
> > Yes, that'd be the best way (the constraint must be deferrable in that
> > case and you often want it to be initially deferred for cyclic
> > constraints).  The question seemed to specifically ask if there was a way
> > without grouping them into a transaction.
>
> But if the columns are marked NOT NULL it wont' be possible to
> insert at the first place itself? i think in such cases one of the
> columns must allow NULL , as someone has already pointed out.

For doing it in multiple transactions using NULL yes (I mention that
above).  You could fake past that by using a non-NULL dummy value that has
a pk row that doesn't have real meaning except for this purpose, but at
that point you probably might as well not bother with the constraint.


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

Предыдущее
От: Rajesh Kumar Mallah
Дата:
Сообщение: Re: CREATE TABLE with REFERENCE
Следующее
От: gnotari@linkgroup.it
Дата:
Сообщение: pg_dumpall: query failed: