RETURNING

L'instruction DELETE peut contenir une construction RETURNING pour retourner les valeurs des enregistrements supprimés. L'instruction RETURNING peut contenir n'importe quelles colonnes, pas nécessairement toutes, ainsi que d'autres colonnes et expressions. Un astérisque (*) peut être spécifié à la place d'une liste de colonnes, auquel cas toutes les colonnes de l'enregistrement supprimé seront retournées.

Note
  • En DML, l'instruction DELETE avec la clause RETURNING retourne un curseur (avant Firebird 5.0, elle ne pouvait retourner qu'un seul enregistrement). Actuellement, les instructions avec la clause RETURNING ne peuvent pas être appliqués avec la clause FOR pour boucler sur le curseur dans PSQL. Ce comportement peut être modifié dans les futures versions de Firebird. Si les enregistrements n'ont pas été supprimés, les colonnes retournées contiennent NULL ;

  • En PSQL, si la ligne n'a pas été supprimée, rien n'est renvoyé et les variables cibles conservent leurs valeurs ;

  • La clause INTO n'est disponible que dans PSQL.

Example 1. Utilisation de la clause RETOURNER dans l'instruction DELETE.
DELETE FROM Scholars
WHERE first_name = 'Henry' AND last_name = 'Higgins'
RETURNING last_name, fullname, id

DELETE FROM Dumbbells
ORDER BY iq DESC
ROWS 1
RETURNING last_name, iq
INTO :lname, :iq;

DELETE FRMO TempSales ts
WHERE ts.id = tempid
RETURNING ts.qty
INTO new.qty;