I am trying to delete a few records but am getting the following error:
Cannot delete or update a parent row: a foreign key constraint fails
The thing is, the foreign key constraint is failing for only 1 or 2 of my 100 records I wish to delete. I wish to write a query which deletes these 98-99 records, skipping the 1 or 2 which failed, which I can later manually inspect and delete/modify. Not stopping because of some single problematic record, but continuing with the others, ignoring that.
Is there a neat way to d开发者_Python百科o this ?
You have to LEFT JOIN
the referencing table and add a condition saying that the row is missing in that table.
For example:
DELETE a FROM a
LEFT JOIN b ON b.a_id = a.id
WHERE b.a_id IS NULL;
Use ignore:
DELETE IGNORE ...
http://dev.mysql.com/doc/refman/5.0/en/delete.html
精彩评论