Обсуждение: Help converting constraint triggers

Поиск
Список
Период
Сортировка

Help converting constraint triggers

От
Chris Hoover
Дата:
I need some help understanding how to convert constraint triggers to
normal foreign keys.  I have several of them in my database that a
previous dba created.  Since they don't show up in most PostgreSQL
tools, they are becoming a real pain to deal with.

Here is an example of on of the constraint triggers:
CREATE CONSTRAINT TRIGGER sys_user_group_id_fkey
    AFTER INSERT OR UPDATE ON sys_user
    FROM sys_group
    NOT DEFERRABLE INITIALLY IMMEDIATE
    FOR EACH ROW
    EXECUTE PROCEDURE "RI_FKey_check_ins" ('sys_user_group_id_fkey',
'sys_user', 'sys_group', 'UNSPECIFIED', 'group_id', 'group_id');


I believe this is the same as the foriegn key definition,

alter table sys_user
  add constraint sys_user_group_id_fkey foreign key(group_id)
  references sys_group(group_id)
  not deferrrable;

Is this correct?  If not, how would be proper foreign key be defined?

Thanks,

Chris

Re: Help converting constraint triggers

От
Tom Lane
Дата:
Chris Hoover <revoohc@gmail.com> writes:
> I need some help understanding how to convert constraint triggers to
> normal foreign keys.

You might try the contrib/adddepend script ...

            regards, tom lane

Re: Help converting constraint triggers

От
Chris Hoover
Дата:
What version of pgadmin are you using?  I looked in pgadmin3 and it
does not show the constraint triggers.

On 8/3/05, Hemapriya <priyam_1121@yahoo.com> wrote:
>
> pgadmin will list all the trigger functions defined
> in each schema. it is a freeware.
>
> --- Chris Hoover <revoohc@gmail.com> wrote:
>
> > I need some help understanding how to convert
> > constraint triggers to
> > normal foreign keys.  I have several of them in my
> > database that a
> > previous dba created.  Since they don't show up in
> > most PostgreSQL
> > tools, they are becoming a real pain to deal with.
> >
> > Here is an example of on of the constraint triggers:
> > CREATE CONSTRAINT TRIGGER sys_user_group_id_fkey
> >     AFTER INSERT OR UPDATE ON sys_user
> >     FROM sys_group
> >     NOT DEFERRABLE INITIALLY IMMEDIATE
> >     FOR EACH ROW
> >     EXECUTE PROCEDURE "RI_FKey_check_ins"
> > ('sys_user_group_id_fkey',
> > 'sys_user', 'sys_group', 'UNSPECIFIED', 'group_id',
> > 'group_id');
> >
> >
> > I believe this is the same as the foriegn key
> > definition,
> >
> > alter table sys_user
> >   add constraint sys_user_group_id_fkey foreign
> > key(group_id)
> >   references sys_group(group_id)
> >   not deferrrable;
> >
> > Is this correct?  If not, how would be proper
> > foreign key be defined?
> >
> > Thanks,
> >
> > Chris
> >
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 5: don't forget to increase your free space map
> > settings
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>

Re: Help converting constraint triggers

От
Chris Hoover
Дата:
I tried running this an a test db, and it got some, but not all of the
constraint triggers.  Is there anything else to try?

Also, was my interpretation of the constraint trigger correct?  While
there are many constraint triggers defined, I don't think the volume
is large enough to make it prohibitive for me to just convert them by
hand.

Thanks,

Chris

On 8/3/05, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Chris Hoover <revoohc@gmail.com> writes:
> > I need some help understanding how to convert constraint triggers to
> > normal foreign keys.
>
> You might try the contrib/adddepend script ...
>
>                         regards, tom lane
>

Re: Help converting constraint triggers

От
Hemapriya
Дата:
pgAdmin III v1.2.0..

--- Chris Hoover <revoohc@gmail.com> wrote:

> What version of pgadmin are you using?  I looked in
> pgadmin3 and it
> does not show the constraint triggers.
>
> On 8/3/05, Hemapriya <priyam_1121@yahoo.com> wrote:
> >
> > pgadmin will list all the trigger functions
> defined
> > in each schema. it is a freeware.
> >
> > --- Chris Hoover <revoohc@gmail.com> wrote:
> >
> > > I need some help understanding how to convert
> > > constraint triggers to
> > > normal foreign keys.  I have several of them in
> my
> > > database that a
> > > previous dba created.  Since they don't show up
> in
> > > most PostgreSQL
> > > tools, they are becoming a real pain to deal
> with.
> > >
> > > Here is an example of on of the constraint
> triggers:
> > > CREATE CONSTRAINT TRIGGER sys_user_group_id_fkey
> > >     AFTER INSERT OR UPDATE ON sys_user
> > >     FROM sys_group
> > >     NOT DEFERRABLE INITIALLY IMMEDIATE
> > >     FOR EACH ROW
> > >     EXECUTE PROCEDURE "RI_FKey_check_ins"
> > > ('sys_user_group_id_fkey',
> > > 'sys_user', 'sys_group', 'UNSPECIFIED',
> 'group_id',
> > > 'group_id');
> > >
> > >
> > > I believe this is the same as the foriegn key
> > > definition,
> > >
> > > alter table sys_user
> > >   add constraint sys_user_group_id_fkey foreign
> > > key(group_id)
> > >   references sys_group(group_id)
> > >   not deferrrable;
> > >
> > > Is this correct?  If not, how would be proper
> > > foreign key be defined?
> > >
> > > Thanks,
> > >
> > > Chris
> > >
> > > ---------------------------(end of
> > > broadcast)---------------------------
> > > TIP 5: don't forget to increase your free space
> map
> > > settings
> > >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam
> protection around
> > http://mail.yahoo.com
> >
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 6: explain analyze is your friend
>


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com