Eu preciso excluir muitas linhas de uma tabela pessoas, que é referenciada por muitas outras tabelas como FK.
Se eu tivesse DELETE CASCADE, poderia simplesmente deletar os registros das pessoas, e deletar automaticamente das outras tabelas, mas não gosto da ideia.
Eu gostaria de um script que recebesse como entrada uma instrução DELETE e gerasse todas as instruções DELETE necessárias. Idealmente, ele me diria quantos registros seriam excluídos.
Exemplo:
Entrada:
DELETE FROM persons WHERE person_id < 1000000
Resultado:
-- This would delete 124,345 records
DELETE FROM persons_addresses WHERE person_id < 1000000
-- This would delete 82,954 records
DELETE FROM persons_phone numbers WHERE person_id < 1000000
...
-- This would delete 999,999 records
DELETE FROM persons WHERE person_id < 1000000