MySQL nie ma odpowiednika output
lub returning
klauzule dostarczane przez inne bazy danych. Najlepszym wyborem jest stół tymczasowy:
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);
Wtedy właśnie utworzona tabela ma odpowiednie identyfikatory.
Uwaga:ważne jest, aby do usunięcia użyć nowo utworzonej tabeli. W przeciwnym razie inny wątek/proces może zmienić dane między momentem przechwycenia identyfikatorów a ich usunięciem.