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

449
Vistas
Postgres lock_timeout cuando CREAR ÍNDICE ÚNICO CONCURRENTEMENTE

Tiene problemas para crear un índice único en una tabla. La declaración falla con el siguiente mensaje

 >CREATE UNIQUE INDEX CONCURRENTLY my_table_pkey_new ON my_table (new_id); ERROR: canceling statement due to lock timeout

No está claro por qué obtengo el tiempo de espera de bloqueo. La creación de índices concurrentes no debería bloquear la tabla.

También traté de aumentar el tiempo de espera de bloqueo pero sin éxito

 test=> show lock_timeout; lock_timeout -------------- 5min (1 row) test=> set lock_timeout to 99999999; SET test=> show lock_timeout; lock_timeout -------------- 5min (1 row)
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La creación de índices concurrentes no debería bloquear la tabla.

Por supuesto que bloquea la mesa. ¿Qué debería pasar si alguien intenta dejar caer la tabla mientras se indexaba? Simplemente lo bloquea en un modo que no entra en conflicto con INSERTAR, ACTUALIZAR o ELIMINAR. Pero sí entra en conflicto con otras operaciones, incluyendo VACÍO y (irónicamente, quizás) otras CREAR ÍNDICE CONCURRENTEMENTE. También requiere un bloqueo más fuerte que entra en conflicto con todo, pero solo mantiene ese bloqueo momentáneamente. Pero si ese bloqueo no está disponible de inmediato, puede expirar mientras lo espera.

 test=> show lock_timeout; lock_timeout -------------- 5min (1 row) test=> set lock_timeout to 99999999; SET test=> show lock_timeout; lock_timeout -------------- 5min (1 row)

¿Todo esto se ejecuta en una sola sesión, sin declaraciones intermedias, como sugeriría la sangría del código contiguo? Si es así, creo que debe estar ejecutando alguna versión modificada de PostgreSQL, ya que no creo que ninguna versión de la comunidad de PostgreSQL se comporte de esa manera.

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