Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
¿Por qué no puedo agrupar dos comandos sql con una declaración "with" en Postgresql?

¿Funciona con la declaración con múltiples comandos sql? Tengo que eliminar entradas en 2 tablas. Mi sql es así:

 with tbd as ( SELECT (row_value ->> 'id')::INTEGER FROM public.row_history where record_table = 'survey_storage' and row_value ->> 'status' = 'Never Surveyed' except (SELECT (row_value ->> 'id')::INTEGER FROM public.row_history where record_table = 'survey_storage' and row_value ->> 'status' = 'Ready to Launch') limit 1) delete from row_history where (row_value ->> 'id')::INTEGER = ANY(ARRAY(select * from tbd)) delete from survey_storage where id = ANY(ARRAY(select * from tbd))

Esto no funciona. De 2 declaraciones de eliminación si comenta una, entonces la otra funciona. Pero juntos ni siquiera compilan. Definitivamente puedo escribir 2 scripts sql cada uno con 1 eliminación, pero quiero hacer esto de una sola vez. me sale este error:

 SQL Error [42601]: ERROR: syntax error at or near "delete" Position: 410 ERROR: syntax error at or near "delete" Position: 410 ERROR: syntax error at or near "delete" Position: 410
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puedes hacer lo siguiente:

 with tbd as ( SELECT (row_value ->> 'id')::INTEGER FROM public.row_history where record_table = 'survey_storage' and row_value ->> 'status' = 'Never Surveyed' except (SELECT (row_value ->> 'id')::INTEGER FROM public.row_history where record_table = 'survey_storage' and row_value ->> 'status' = 'Ready to Launch') limit 1) ), cte2 as ( delete from row_history where (row_value ->> 'id')::INTEGER = ANY(ARRAY(select * from tbd)) ) delete from survey_storage where id = ANY(ARRAY(select * from tbd));
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda