PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

HAPUS PostgreSQL rekursif

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);

Anda harus meletakkan titik awal di pilihan awal (di dalam with) ATAU Anda harus entah bagaimana membuat pseudocolumn yang mewakili bagian atas "pohon", itu sama untuk setiap baris di seluruh pohon itu. Menempatkan "top where" pada pilihan awal di dalam with adalah solusi yang lebih mudah.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan baris dengan beberapa bidang duplikat dengan Rekaman Aktif, Rel &Postgres

  2. Membungkam spam log postgres di log Rails 3

  3. pemulihan basis data ke status tertentu untuk pengujian

  4. postgres:dapatkan n kemunculan nilai teratas dalam setiap grup

  5. Menyimpan nilai Array ke integer