Why not put a flag variable (tinyint or enum) in your ABA table and instead
of deleting the records, just mark them as no longer valid?

--jeff

----- Original Message -----
From: "David Felio" <[EMAIL PROTECTED]>
To: "MySQL" <[EMAIL PROTECTED]>
Sent: Wednesday, February 27, 2002 11:49 AM
Subject: Re: flexible foreign keys?


> When I try to delete a row from the parent table and the key is in use in
> the child table, I get:
>
> ERROR 1217: Cannot delete a parent row: a foreign key constraint fails
>
> So it doesn't cascade and delete rows in the child table (assuming I am
> interpreting "cascade on delete" correctly), but it doesn't let me delete
> the parent row either. I can certainly understand the restriction, but it
> puts me in a bit of a bind on the db design. I don't want the child to be
> deleted anyway, if the parent is deleted. I just want to delete the parent
> row.
>
> On Wednesday, February 27, 2002, at 01:37  PM, Jeff Kilbride wrote:
>
> > InnoDB doesn't support the CASCADE functionality of foreign keys, so
it's
> > possible deleting the key from the parent table won't have any effect on
> > existing transactions in the child. It may only prevent new records from
> > being inserted with that key -- which is essentially what you want. Most
> > DBs
> > that support CASCADE give you the option of turning it off.
> >
> > http://www.mysql.com/doc/S/E/SEC445.html
> >
> > Have you tried entering a bogus ACH number and a corresponding
transaction,
> > and then deleting the key? I don't use InnoDB, so I don't know if it
will
> > work, but it's worth a try...
> >
> > Thanks,
> > --jeff
> >
> > ----- Original Message -----
> > From: "David Felio" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Wednesday, February 27, 2002 8:21 AM
> > Subject: flexible foreign keys?
> >
> >
> >> I have a MySQL InnoDB table for recording checking account transactions
> > and
> >> it currently has a foreign key on the routing number referencing a
local
> >> copy of the fed ach routing number database. It works a little too
well,
> > in
> >> that a routing number may be good today, but not tomorrow. I would like
> > for
> >> the foreign key to be there to make sure an entry with a bad routing
> > number
> >> doesn't get entered, but I also will need to delete routing numbers
from
> >> the local fed db when they are no longer good and if I have a
transaction
> >> that previously used the routing number I won't be able to delete it.
So,
> >> for example, on 2/27/2002 I do a transaction with routing number
> > 123456789.
> >>   The foreign key shows that that is a valid routing number so it lets
the
> >> insert go through. On 2/29/2002 (or any other day after the
transaction)
> >> the fed removes 123456789 from its list of valid routing numbers. Now I
> >> want to delete it from my local copy, but can't because it is linked
via
> >> the foreign key to the transaction on 2/27/2002.
> >>
> >> Can someone help me with a solution here?
>
>
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail
<[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to