DBAtlas · Atlas de operaciones de bases de datos

42710: duplicate_object

PostgreSQL

¿Qué significa?

El objeto que se está creando (rol, tipo, restricción, extensión, esquema, nombre de índice, etc.) ya existe. PostgreSQL no permite un segundo objeto con el mismo nombre/definición.

¿Por qué ocurre?

Un comando como CREATE ROLE, CREATE TYPE, CREATE EXTENSION o ADD CONSTRAINT se ejecutó cuando ya existía un objeto con el mismo nombre. Suele deberse a un script ejecutado dos veces, migraciones no idempotentes o dos sesiones concurrentes que intentan crear el mismo objeto.

Cómo solucionarlo

Compruebe si el objeto existe (pg_roles para roles, pg_type para tipos, pg_extension para extensiones). Escriba las migraciones de forma idempotente: use CREATE ... IF NOT EXISTS donde esté disponible, o ejecute primero DROP ... IF EXISTS. Ante un conflicto de restricciones, renombre la restricción existente o elimínela y vuelva a crearla.

Abrir en DBAtlas →

Más entradas de este motor