sql >> Database >  >> RDS >> PostgreSQL

VERWIJDER recursieve PostgreSQL

WITH RECURSIVE all_uploads (codigo, parent, ext, main) AS (
 SELECT ut1.codigo, ut1.codigo_upload_temp_pai AS parent,
  ut1.codigo_extensao AS ext, ut1.codigo AS main
 FROM upload_temp ut1
 WHERE ut1.codigo = 486

 UNION ALL

SELECT ut2.codigo, ut2.codigo_upload_temp_pai AS parent,
 ut2.codigo_extensao AS ext, au.main
FROM upload_temp ut2
JOIN all_uploads au ON au.parent = ut2.codigo
)
DELETE FROM upload_temp WHERE codigo IN (SELECT codigo FROM all_uploads);

Je moet het startpunt in de initiële selectie plaatsen (binnen de met) OF je moet op de een of andere manier een pseudokolom maken die de top van de "boom" vertegenwoordigt, die hetzelfde is voor elke rij in die hele boom. Het plaatsen van de "top waar" in de eerste selectie binnen de met is de gemakkelijkere oplossing.




  1. Kan geen verbinding maken met MySQL-database op Node.js

  2. SQLAlchemy-strategieën voor bulkupdates

  3. Hoe krijg je een laatste record met een bepaalde id in codeigniter?

  4. Fout bij controle op door PDO opgestelde verklaringen