SQLSTATE 42710 ERROR Class 42: Syntax Error or Access Rule Violation

duplicate_object Duplicate Object — SQLSTATE 42710

An object with that name already exists.

PG 12, 13, 14, 15, 16, 17, 18 Official docs
Last reviewed May 2025 Grounded in source

Symptoms

An object with that name already exists.

  • The error is written to the server log and returned to the client carrying SQLSTATE 42710.
  • Any driver (libpq, JDBC, psycopg, npgsql, pgx) surfaces this code in its error object so you can branch on it programmatically.
  • PL/pgSQL can trap it by name: EXCEPTION WHEN duplicate_object THEN.

Environment

Severity: ERROR  |  PostgreSQL versions: 12, 13, 14, 15, 16, 17

Reproduce with the exact statement and read the full message in the server log (raise log_min_messages / set log_min_error_statement for more context).

Root Cause

A CREATE statement targets a name that is already in use.

Diagnostic Queries

Recovery

Steps to resolve 42710:

  1. Use IF NOT EXISTS, choose a different name, or drop the existing object first.

Reference: PostgreSQL error codes — Class 42 (Syntax Error or Access Rule Violation).

Was this helpful?