MySQL hat kein Äquivalent zu output
oder returning
Klauseln, die von anderen Datenbanken bereitgestellt werden. Am besten ist eine temporäre Tabelle:
CREATE TABLE TheDeletedIds as
SELECT t1.id
FROM t1 LEFT JOIN
t2
ON t1.t2_id = t2.id
WHERE t2.id IS NULL OR t2.is_valid = false;
DELETE t1
FROM t1
WHERE t1.id IN (SELECT id FROM TheDeletedIds);
Dann hat die gerade erstellte Tabelle die gewünschten IDs.
Hinweis:Es ist wichtig, die neu erstellte Tabelle zum Löschen zu verwenden. Andernfalls könnte ein anderer Thread/Prozess die Daten zwischen dem Zeitpunkt, an dem Sie die IDs erfassen, und dem Zeitpunkt, an dem Sie sie löschen, ändern.