Cláusula RETURNING
Extensão do PostgreSQL: INSERT/UPDATE/DELETE devolve as linhas modificadas. INSERT INTO users (name) VALUES ('Alice') RETURNING id, created_at — evita um SELECT separado após o INSERT para obter o ID gerado automaticamente. Padronizada no SQL:2023, mas recurso do Postgres desde a 8.2 (2006).
Caso de uso: obter a chave primária gerada após o INSERT (alternativa: LAST_INSERT_ID() no MySQL). UPDATE ... RETURNING: pegar os valores anteriores para auditoria. DELETE ... RETURNING: limpar e já relatar o que foi apagado. Combina com CTEs: WITH inserted AS (INSERT ... RETURNING *) SELECT * FROM inserted JOIN .... Desempenho: uma única ida e volta contra INSERT + SELECT separados. MySQL: a sintaxe RETURNING apareceu primeiro no MariaDB 10.5 (2020); o MySQL 8.x ainda não a tem (2024). ORMs (SQLAlchemy, Django) usam RETURNING por baixo dos panos quando disponível.