Mysql
 sql >> Datenbank >  >> RDS >> Mysql

UPDATE/DELETE in mysql und erhalten Sie die Liste der betroffenen Zeilen-IDs?

Sie können einen Trigger erstellen

Der folgende Code erstellt einen Trigger für eine Tabelle namens mytable welches ein Feld id hat

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

Beachten Sie, dass OLD verweist auf gelöschte Zeile

Sobald Sie einen Trigger für eine Tabelle erstellt haben, können Sie ihn wie folgt verwenden:

/* 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';

Dadurch werden gelöschte IDs zurückgegeben, denen jeweils ein Komma in einer Zeichenfolge vorangestellt ist