sql >> Databasteknik >  >> RDS >> Mysql

UPPDATERA/RADERA i mysql och få listan över berörda rad-ID?

Du kan skapa en utlösare

följande kod skapar en trigger på en tabell som heter mytable som har ett fält id

CREATE TRIGGER mytable_delete
AFTER DELETE ON mytable
FOR EACH ROW SET @deletedIDs = CONCAT_WS(',', @deletedIDs, OLD.id)

Lägg märke till att OLD hänvisar till raderad rad

när du väl har skapat en trigger på en tabell kan du använda den på följande sätt:

/* empty parameter defined in CREATE TRIGGER */
Set @deletedIDs = '';
/* perform your query */
DELETE FROM mytable WHERE myotherfield = 'myfilterevalue';
/* get the parameter */
SELECT @deletedIDs AS 'Deleted_IDs';

detta kommer att returnera raderade ID:n som föregås av ett kommatecken i en sträng



  1. Kontrollera statusen för alla databaspostmeddelanden i SQL Server (T-SQL)

  2. Uppdaterar JLabel via SetIcon från bytea-datatyp i postgres

  3. SELECT som returnerar en lista med värden som inte förekommer på någon rad

  4. Spela 2.4 - Slick 3.0.0 - DELETE fungerar inte