Обсуждение: Foreign key modification

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

Foreign key modification

От
Jean-Michel POURE
Дата:
Hello Dave and all,

I really need to modify foreign keys on an existing database.
As there is no ALTER TABLE DROP command, I need a pseudo rebuild feature
(CREATE TABLE AS).

Could you please explain the guidelines for adding this feature to pgAdmin II.
Don't worry, I will not upload code until it is stable and reviewed by you.

Cheers,
Jean-Michel


Re: Foreign key modification

От
Dave Page
Дата:

> -----Original Message-----
> From: Jean-Michel POURE [mailto:jmpoure@axitrad.com]
> Sent: 26 September 2001 14:40
> To: pgadmin-hackers@postgresql.org
> Subject: [pgadmin-hackers] Foreign key modification
>
>
> Hello Dave and all,
>
> I really need to modify foreign keys on an existing database.
> As there is no ALTER TABLE DROP command, I need a pseudo
> rebuild feature
> (CREATE TABLE AS).
>
> Could you please explain the guidelines for adding this
> feature to pgAdmin II. Don't worry, I will not upload code
> until it is stable and reviewed by you.

Can't you pick an easier one to start with?!?! Foreign Keys are probably the
most complex bit of pgSchema...

In the simplest terms, pgSchema will need Remove & Add methods in
ForeignKeys.cls. These will drop/re-create the three triggers that make up
the Foreign Key (I assume there is nothing more to an fkey, I've certainly
never found anything).

If you wish to edit an fkey, you will need to make the relevant property of
pgForeignKey.cls read/write and add the code to the Property Let to drop &
recreate the relevant trigger in the required way.

I would take a look at how ForeignKeys.cls analyses the existing triggers to
figure out what the triggers look like and how to best modify them.

Regards, Dave.

Re: Foreign key modification

От
Jean-Michel POURE
Дата:
>Can't you pick an easier one to start with?!?! Foreign Keys are probably the
>most complex bit of pgSchema...
>
>In the simplest terms, pgSchema will need Remove & Add methods in
>ForeignKeys.cls. These will drop/re-create the three triggers that make up
>the Foreign Key (I assume there is nothing more to an fkey, I've certainly
>never found anything).
>
>If you wish to edit an fkey, you will need to make the relevant property of
>pgForeignKey.cls read/write and add the code to the Property Let to drop &
>recreate the relevant trigger in the required way.
>
>I would take a look at how ForeignKeys.cls analyses the existing triggers to
>figure out what the triggers look like and how to best modify them.
>
>Regards, Dave.

Hello Dave,

Ok, I though pgSchema already had these features.
I will have a look at this Remove & Add methods in ForeignKeys.cls.

Cheers,
Jean-Michel


Re: Foreign key modification

От
Dave Page
Дата:

> -----Original Message-----
> From: Jean-Michel POURE [mailto:jmpoure@axitrad.com]
> Sent: 27 September 2001 09:08
> To: pgadmin-hackers@postgresql.org
> Subject: Re: [pgadmin-hackers] Foreign key modification
>
>
>
> >Can't you pick an easier one to start with?!?! Foreign Keys are
> >probably the most complex bit of pgSchema...
> >
> >In the simplest terms, pgSchema will need Remove & Add methods in
> >ForeignKeys.cls. These will drop/re-create the three
> triggers that make
> >up the Foreign Key (I assume there is nothing more to an fkey, I've
> >certainly never found anything).
> >
> >If you wish to edit an fkey, you will need to make the relevant
> >property of pgForeignKey.cls read/write and add the code to the
> >Property Let to drop & recreate the relevant trigger in the required
> >way.
> >
> >I would take a look at how ForeignKeys.cls analyses the existing
> >triggers to figure out what the triggers look like and how to best
> >modify them.
> >
> >Regards, Dave.
>
> Hello Dave,
>
> Ok, I though pgSchema already had these features.
> I will have a look at this Remove & Add methods in ForeignKeys.cls.

No, it only (currently) has these methods for objects that can be directly
added or removed with simple SQL. The idea was that we would then make
simple properties Read/Write as we figured out ways to do so, and add
Add/Remove meothods for the more complex things such as ForeignKeys.

/D