Minden árva adat eldobása (amit nem fog valamilyen idegen kulcs [MySQL])

Sziasztok,
egy olyan problémával szembesültem, hogy van egy néhány millió rekordos DB, amiből visszamenőleg törölni kellene (6 évnyi adatot) lehetőleg az integritás megtartásával. Mivel a DB maga idegen kulcsokkal és megfelelő kapcsolatokkal lett felépítve, így ezekre tudnék támaszkodni.

Nincs beállítva sehol sem cascade delete (szándékosan, az eredeti DB-ből kézlevágás mellett lehetne törölgetni csak), így a törlés az integritás megőrzésével maximum táblánként lehetséges, ami egy elég hosszadalmas folyamat lenne.

Egy táblában van a főadat, ott megfelelően vannak mentve a timestamp-ek, és az ezekhez kapcsolódó rekordokat (amit ez fog) kellene eldobni, illetve azokat amit már nem fog semmi (ugyan a DB így lett felépítve, de előfordulhatnak benne esetlegesen korai inkonzisztens adatok).

Gondoltam olyan joinos megoldásokra, ahol a másik oldal null azokat a sorokat eldobom, de ez enyhén szólva is macerás első nekifutásra (de ez marad, ha nincs más, mert ez is relatíve kevés melóval megoldható).
Kb. 10-15 egymáshoz kapcsolódó táblából törölni kellene a hozzá tartozó dolgokat, így ez egy jópár órás feladat lenne.

A kérdésem: Van-e olyan módszer amivel csak az "árva" adatokat dobjuk el, amit nem fog semmilyen idegen kulcs?

Előre is köszi az ötleteket!

Hozzászólások