Обсуждение: foreign key constraints, cannot delete

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

foreign key constraints, cannot delete

От
Josh Close
Дата:
How can a delete rows from a table that has foreign key constraints?
Here is how I have it set up.

I have 2 tables, tableA has fields and id's and tableB has fields that
reference tableA's id's. I'm not able to do this

BEGIN TRANSACTION;

DELETE FROM tableB
WHERE tableAid = 5;

DELETE FROM tableA
WHERE id = 5;

COMMIT TRANSATION;

Even though I delete everything from tableB that references tableA, I
can't delete the field from tableA.

Is this because of the begin and commit? Do I need to commit after each delete?

The only problem with commiting after each is, if one fails for some
reason, I need it to rollback.


-Josh

Re: foreign key constraints, cannot delete

От
Martijn van Oosterhout
Дата:
You havn't posted the exact error message. You'll have to if you want
people to properly explain what's going on...

On Fri, Oct 08, 2004 at 04:07:43PM -0500, Josh Close wrote:
> How can a delete rows from a table that has foreign key constraints?
> Here is how I have it set up.
>
> I have 2 tables, tableA has fields and id's and tableB has fields that
> reference tableA's id's. I'm not able to do this
>
> BEGIN TRANSACTION;
>
> DELETE FROM tableB
> WHERE tableAid = 5;
>
> DELETE FROM tableA
> WHERE id = 5;
>
> COMMIT TRANSATION;
>
> Even though I delete everything from tableB that references tableA, I
> can't delete the field from tableA.
>
> Is this because of the begin and commit? Do I need to commit after each delete?
>
> The only problem with commiting after each is, if one fails for some
> reason, I need it to rollback.
>
>
> -Josh
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faqs/FAQ.html

--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Вложения

Re: foreign key constraints, cannot delete

От
Josh Close
Дата:
On Fri, 8 Oct 2004 23:15:24 +0200, Martijn van Oosterhout
<kleptog@svana.org> wrote:
> You havn't posted the exact error message. You'll have to if you want
> people to properly explain what's going on...

update or delete on "tblheadings" violates foreign key constraint "$1"
on "tblheadings" DETAIL: Key (iid)=(22) is still referenced from table
"tblheadings"

-Josh

Re: foreign key constraints, cannot delete

От
Michael Fuhr
Дата:
On Fri, Oct 08, 2004 at 04:21:01PM -0500, Josh Close wrote:
> On Fri, 8 Oct 2004 23:15:24 +0200, Martijn van Oosterhout
> <kleptog@svana.org> wrote:
> > You havn't posted the exact error message. You'll have to if you want
> > people to properly explain what's going on...
>
> update or delete on "tblheadings" violates foreign key constraint "$1"
> on "tblheadings" DETAIL: Key (iid)=(22) is still referenced from table
> "tblheadings"

This looks like tblheadings has a foreign key reference to itself.
Is this the *exact* error message, cut-and-pasted?  What do your
table definitions look like?

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

Re: foreign key constraints, cannot delete [SOLVED]

От
Josh Close
Дата:
On Fri, 8 Oct 2004 18:14:50 -0600, Michael Fuhr <mike@fuhr.org> wrote:
> This looks like tblheadings has a foreign key reference to itself.
> Is this the *exact* error message, cut-and-pasted?  What do your
> table definitions look like?
>
> --
> Michael Fuhr

There isn't a foreign key reference to itself. I figured out the
problem. I had to print out all the queries and manually figure out
the data that was being deleted. Turns out there was one value the
wasn't being removed. So the begin and commit do work like they
should.

Thanks.

-Josh