sql >> Database >  >> RDS >> Mysql

Kan ik in MySQL verwijderde rijen retourneren na een verwijdering?

MySQL heeft niet het equivalent van de output of returning clausules die door andere databases worden verstrekt. Uw beste gok is een tijdelijke tafel:

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);

Dan heeft de tabel die je zojuist hebt gemaakt de id's die je wilt.

Opmerking:het is belangrijk om de nieuw gemaakte tabel te gebruiken voor het verwijderen. Anders kan een andere thread/proces de gegevens wijzigen tussen het moment waarop u de ID's vastlegt en het moment waarop u ze verwijdert.



  1. SQL om te controleren of de database leeg is (geen tabellen)

  2. MySQL:tel records van de ene tabel en werk vervolgens een andere bij

  3. Een .sql-script uitvoeren vanuit bash

  4. Verifieert MySQLi standaard servercertificaten bij gebruik van SSL?