SQLSTATE | Exception | Base exception
--- | --- | ---
Class 02: No Data (this is also a warning class per the SQL standard)
`02000` | `NoData` | `DatabaseError`
`02001` | `NoAdditionalDynamicResultSetsReturned` | `DatabaseError`
Class 03: SQL Statement Not Yet Complete
`03000` | `SqlStatementNotYetComplete` | `DatabaseError`
Class 08: Connection Exception
`08000` | `ConnectionException` | `OperationalError`
`08001` | `SqlclientUnableToEstablishSqlconnection` | `OperationalError`
`08003` | `ConnectionDoesNotExist` | `OperationalError`
`08004` | `SqlserverRejectedEstablishmentOfSqlconnection` | `OperationalError`
`08006` | `ConnectionFailure` | `OperationalError`
`08007` | `TransactionResolutionUnknown` | `OperationalError`
`08P01` | `ProtocolViolation` | `OperationalError`
Class 09: Triggered Action Exception
`09000` | `TriggeredActionException` | `DatabaseError`
Class 0A: Feature Not Supported
`0A000` | `FeatureNotSupported` | `NotSupportedError`
Class 0B: Invalid Transaction Initiation
`0B000` | `InvalidTransactionInitiation` | `DatabaseError`
Class 0F: Locator Exception
`0F000` | `LocatorException` | `DatabaseError`
`0F001` | `InvalidLocatorSpecification` | `DatabaseError`
Class 0L: Invalid Grantor
`0L000` | `InvalidGrantor` | `DatabaseError`
`0LP01` | `InvalidGrantOperation` | `DatabaseError`
Class 0P: Invalid Role Specification
`0P000` | `InvalidRoleSpecification` | `DatabaseError`
Class 0Z: Diagnostics Exception
`0Z000` | `DiagnosticsException` | `DatabaseError`
`0Z002` | `StackedDiagnosticsAccessedWithoutActiveHandler` | `DatabaseError`
Class 20: Case Not Found
`20000` | `CaseNotFound` | `ProgrammingError`
Class 21: Cardinality Violation
`21000` | `CardinalityViolation` | `ProgrammingError`
Class 22: Data Exception
`22000` | `DataException` | `DataError`
`22001` | `StringDataRightTruncation` | `DataError`
`22002` | `NullValueNoIndicatorParameter` | `DataError`
`22003` | `NumericValueOutOfRange` | `DataError`
`22004` | `NullValueNotAllowed` | `DataError`
`22005` | `ErrorInAssignment` | `DataError`
`22007` | `InvalidDatetimeFormat` | `DataError`
`22008` | `DatetimeFieldOverflow` | `DataError`
`22009` | `InvalidTimeZoneDisplacementValue` | `DataError`
`2200B` | `EscapeCharacterConflict` | `DataError`
`2200C` | `InvalidUseOfEscapeCharacter` | `DataError`
`2200D` | `InvalidEscapeOctet` | `DataError`
`2200F` | `ZeroLengthCharacterString` | `DataError`
`2200G` | `MostSpecificTypeMismatch` | `DataError`
`2200H` | `SequenceGeneratorLimitExceeded` | `DataError`
`2200L` | `NotAnXmlDocument` | `DataError`
`2200M` | `InvalidXmlDocument` | `DataError`
`2200N` | `InvalidXmlContent` | `DataError`
`2200S` | `InvalidXmlComment` | `DataError`
`2200T` | `InvalidXmlProcessingInstruction` | `DataError`
`22010` | `InvalidIndicatorParameterValue` | `DataError`
`22011` | `SubstringError` | `DataError`
`22012` | `DivisionByZero` | `DataError`
`22013` | `InvalidPrecedingOrFollowingSize` | `DataError`
`22014` | `InvalidArgumentForNtileFunction` | `DataError`
`22015` | `IntervalFieldOverflow` | `DataError`
`22016` | `InvalidArgumentForNthValueFunction` | `DataError`
`22018` | `InvalidCharacterValueForCast` | `DataError`
`22019` | `InvalidEscapeCharacter` | `DataError`
`2201B` | `InvalidRegularExpression` | `DataError`
`2201E` | `InvalidArgumentForLogarithm` | `DataError`
`2201F` | `InvalidArgumentForPowerFunction` | `DataError`
`2201G` | `InvalidArgumentForWidthBucketFunction` | `DataError`
`2201W` | `InvalidRowCountInLimitClause` | `DataError`
`2201X` | `InvalidRowCountInResultOffsetClause` | `DataError`
`22021` | `CharacterNotInRepertoire` | `DataError`
`22022` | `IndicatorOverflow` | `DataError`
`22023` | `InvalidParameterValue` | `DataError`
`22024` | `UnterminatedCString` | `DataError`
`22025` | `InvalidEscapeSequence` | `DataError`
`22026` | `StringDataLengthMismatch` | `DataError`
`22027` | `TrimError` | `DataError`
`2202E` | `ArraySubscriptError` | `DataError`
`2202G` | `InvalidTablesampleRepeat` | `DataError`
`2202H` | `InvalidTablesampleArgument` | `DataError`
`22030` | `DuplicateJsonObjectKeyValue` | `DataError`
`22031` | `InvalidArgumentForSqlJsonDatetimeFunction` | `DataError`
`22032` | `InvalidJsonText` | `DataError`
`22033` | `InvalidSqlJsonSubscript` | `DataError`
`22034` | `MoreThanOneSqlJsonItem` | `DataError`
`22035` | `NoSqlJsonItem` | `DataError`
`22036` | `NonNumericSqlJsonItem` | `DataError`
`22037` | `NonUniqueKeysInAJsonObject` | `DataError`
`22038` | `SingletonSqlJsonItemRequired` | `DataError`
`22039` | `SqlJsonArrayNotFound` | `DataError`
`2203A` | `SqlJsonMemberNotFound` | `DataError`
`2203B` | `SqlJsonNumberNotFound` | `DataError`
`2203C` | `SqlJsonObjectNotFound` | `DataError`
`2203D` | `TooManyJsonArrayElements` | `DataError`
`2203E` | `TooManyJsonObjectMembers` | `DataError`
`2203F` | `SqlJsonScalarRequired` | `DataError`
`2203G` | `SqlJsonItemCannotBeCastToTargetType` | `DataError`
`22P01` | `FloatingPointException` | `DataError`
`22P02` | `InvalidTextRepresentation` | `DataError`
`22P03` | `InvalidBinaryRepresentation` | `DataError`
`22P04` | `BadCopyFileFormat` | `DataError`
`22P05` | `UntranslatableCharacter` | `DataError`
`22P06` | `NonstandardUseOfEscapeCharacter` | `DataError`
Class 23: Integrity Constraint Violation
`23000` | `IntegrityConstraintViolation` | `IntegrityError`
`23001` | `RestrictViolation` | `IntegrityError`
`23502` | `NotNullViolation` | `IntegrityError`
`23503` | `ForeignKeyViolation` | `IntegrityError`
`23505` | `UniqueViolation` | `IntegrityError`
`23514` | `CheckViolation` | `IntegrityError`
`23P01` | `ExclusionViolation` | `IntegrityError`
Class 24: Invalid Cursor State
`24000` | `InvalidCursorState` | `InternalError`
Class 25: Invalid Transaction State
`25000` | `InvalidTransactionState` | `InternalError`
`25001` | `ActiveSqlTransaction` | `InternalError`
`25002` | `BranchTransactionAlreadyActive` | `InternalError`
`25003` | `InappropriateAccessModeForBranchTransaction` | `InternalError`
`25004` | `InappropriateIsolationLevelForBranchTransaction` | `InternalError`
`25005` | `NoActiveSqlTransactionForBranchTransaction` | `InternalError`
`25006` | `ReadOnlySqlTransaction` | `InternalError`
`25007` | `SchemaAndDataStatementMixingNotSupported` | `InternalError`
`25008` | `HeldCursorRequiresSameIsolationLevel` | `InternalError`
`25P01` | `NoActiveSqlTransaction` | `InternalError`
`25P02` | `InFailedSqlTransaction` | `InternalError`
`25P03` | `IdleInTransactionSessionTimeout` | `InternalError`
`25P04` | `TransactionTimeout` | `InternalError`
Class 26: Invalid SQL Statement Name
`26000` | `InvalidSqlStatementName` | `OperationalError`
Class 27: Triggered Data Change Violation
`27000` | `TriggeredDataChangeViolation` | `OperationalError`
Class 28: Invalid Authorization Specification
`28000` | `InvalidAuthorizationSpecification` | `OperationalError`
`28P01` | `InvalidPassword` | `OperationalError`
Class 2B: Dependent Privilege Descriptors Still Exist
`2B000` | `DependentPrivilegeDescriptorsStillExist` | `InternalError`
`2BP01` | `DependentObjectsStillExist` | `InternalError`
Class 2D: Invalid Transaction Termination
`2D000` | `InvalidTransactionTermination` | `InternalError`
Class 2F: SQL Routine Exception
`2F000` | `SqlRoutineException` | `InternalError`
`2F002` | `ModifyingSqlDataNotPermitted` | `InternalError`
`2F003` | `ProhibitedSqlStatementAttempted` | `InternalError`
`2F004` | `ReadingSqlDataNotPermitted` | `InternalError`
`2F005` | `FunctionExecutedNoReturnStatement` | `InternalError`
Class 34: Invalid Cursor Name
`34000` | `InvalidCursorName` | `OperationalError`
Class 38: External Routine Exception
`38000` | `ExternalRoutineException` | `InternalError`
`38001` | `ContainingSqlNotPermitted` | `InternalError`
`38002` | `ModifyingSqlDataNotPermittedExt` | `InternalError`
`38003` | `ProhibitedSqlStatementAttemptedExt` | `InternalError`
`38004` | `ReadingSqlDataNotPermittedExt` | `InternalError`
Class 39: External Routine Invocation Exception
`39000` | `ExternalRoutineInvocationException` | `InternalError`
`39001` | `InvalidSqlstateReturned` | `InternalError`
`39004` | `NullValueNotAllowedExt` | `InternalError`
`39P01` | `TriggerProtocolViolated` | `InternalError`
`39P02` | `SrfProtocolViolated` | `InternalError`
`39P03` | `EventTriggerProtocolViolated` | `InternalError`
Class 3B: Savepoint Exception
`3B000` | `SavepointException` | `InternalError`
`3B001` | `InvalidSavepointSpecification` | `InternalError`
Class 3D: Invalid Catalog Name
`3D000` | `InvalidCatalogName` | `ProgrammingError`
Class 3F: Invalid Schema Name
`3F000` | `InvalidSchemaName` | `ProgrammingError`
Class 40: Transaction Rollback
`40000` | `TransactionRollback` | `OperationalError`
`40001` | `SerializationFailure` | `OperationalError`
`40002` | `TransactionIntegrityConstraintViolation` | `OperationalError`
`40003` | `StatementCompletionUnknown` | `OperationalError`
`40P01` | `DeadlockDetected` | `OperationalError`
Class 42: Syntax Error or Access Rule Violation
`42000` | `SyntaxErrorOrAccessRuleViolation` | `ProgrammingError`
`42501` | `InsufficientPrivilege` | `ProgrammingError`
`42601` | `SyntaxError` | `ProgrammingError`
`42602` | `InvalidName` | `ProgrammingError`
`42611` | `InvalidColumnDefinition` | `ProgrammingError`
`42622` | `NameTooLong` | `ProgrammingError`
`42701` | `DuplicateColumn` | `ProgrammingError`
`42702` | `AmbiguousColumn` | `ProgrammingError`
`42703` | `UndefinedColumn` | `ProgrammingError`
`42704` | `UndefinedObject` | `ProgrammingError`
`42710` | `DuplicateObject` | `ProgrammingError`
`42712` | `DuplicateAlias` | `ProgrammingError`
`42723` | `DuplicateFunction` | `ProgrammingError`
`42725` | `AmbiguousFunction` | `ProgrammingError`
`42803` | `GroupingError` | `ProgrammingError`
`42804` | `DatatypeMismatch` | `ProgrammingError`
`42809` | `WrongObjectType` | `ProgrammingError`
`42830` | `InvalidForeignKey` | `ProgrammingError`
`42846` | `CannotCoerce` | `ProgrammingError`
`42883` | `UndefinedFunction` | `ProgrammingError`
`428C9` | `GeneratedAlways` | `ProgrammingError`
`42939` | `ReservedName` | `ProgrammingError`
`42P01` | `UndefinedTable` | `ProgrammingError`
`42P02` | `UndefinedParameter` | `ProgrammingError`
`42P03` | `DuplicateCursor` | `ProgrammingError`
`42P04` | `DuplicateDatabase` | `ProgrammingError`
`42P05` | `DuplicatePreparedStatement` | `ProgrammingError`
`42P06` | `DuplicateSchema` | `ProgrammingError`
`42P07` | `DuplicateTable` | `ProgrammingError`
`42P08` | `AmbiguousParameter` | `ProgrammingError`
`42P09` | `AmbiguousAlias` | `ProgrammingError`
`42P10` | `InvalidColumnReference` | `ProgrammingError`
`42P11` | `InvalidCursorDefinition` | `ProgrammingError`
`42P12` | `InvalidDatabaseDefinition` | `ProgrammingError`
`42P13` | `InvalidFunctionDefinition` | `ProgrammingError`
`42P14` | `InvalidPreparedStatementDefinition` | `ProgrammingError`
`42P15` | `InvalidSchemaDefinition` | `ProgrammingError`
`42P16` | `InvalidTableDefinition` | `ProgrammingError`
`42P17` | `InvalidObjectDefinition` | `ProgrammingError`
`42P18` | `IndeterminateDatatype` | `ProgrammingError`
`42P19` | `InvalidRecursion` | `ProgrammingError`
`42P20` | `WindowingError` | `ProgrammingError`
`42P21` | `CollationMismatch` | `ProgrammingError`
`42P22` | `IndeterminateCollation` | `ProgrammingError`
Class 44: WITH CHECK OPTION Violation
`44000` | `WithCheckOptionViolation` | `ProgrammingError`
Class 53: Insufficient Resources
`53000` | `InsufficientResources` | `OperationalError`
`53100` | `DiskFull` | `OperationalError`
`53200` | `OutOfMemory` | `OperationalError`
`53300` | `TooManyConnections` | `OperationalError`
`53400` | `ConfigurationLimitExceeded` | `OperationalError`
Class 54: Program Limit Exceeded
`54000` | `ProgramLimitExceeded` | `OperationalError`
`54001` | `StatementTooComplex` | `OperationalError`
`54011` | `TooManyColumns` | `OperationalError`
`54023` | `TooManyArguments` | `OperationalError`
Class 55: Object Not In Prerequisite State
`55000` | `ObjectNotInPrerequisiteState` | `OperationalError`
`55006` | `ObjectInUse` | `OperationalError`
`55P02` | `CantChangeRuntimeParam` | `OperationalError`
`55P03` | `LockNotAvailable` | `OperationalError`
`55P04` | `UnsafeNewEnumValueUsage` | `OperationalError`
Class 57: Operator Intervention
`57000` | `OperatorIntervention` | `OperationalError`
`57014` | `QueryCanceled` | `OperationalError`
`57P01` | `AdminShutdown` | `OperationalError`
`57P02` | `CrashShutdown` | `OperationalError`
`57P03` | `CannotConnectNow` | `OperationalError`
`57P04` | `DatabaseDropped` | `OperationalError`
`57P05` | `IdleSessionTimeout` | `OperationalError`
Class 58: System Error (errors external to PostgreSQL itself)
`58000` | `SystemError` | `OperationalError`
`58030` | `IoError` | `OperationalError`
`58P01` | `UndefinedFile` | `OperationalError`
`58P02` | `DuplicateFile` | `OperationalError`
Class 72: Snapshot Failure
`72000` | `SnapshotTooOld` | `DatabaseError`
Class F0: Configuration File Error
`F0000` | `ConfigFileError` | `InternalError`
`F0001` | `LockFileExists` | `InternalError`
Class HV: Foreign Data Wrapper Error (SQL/MED)
`HV000` | `FdwError` | `OperationalError`
`HV001` | `FdwOutOfMemory` | `OperationalError`
`HV002` | `FdwDynamicParameterValueNeeded` | `OperationalError`
`HV004` | `FdwInvalidDataType` | `OperationalError`
`HV005` | `FdwColumnNameNotFound` | `OperationalError`
`HV006` | `FdwInvalidDataTypeDescriptors` | `OperationalError`
`HV007` | `FdwInvalidColumnName` | `OperationalError`
`HV008` | `FdwInvalidColumnNumber` | `OperationalError`
`HV009` | `FdwInvalidUseOfNullPointer` | `OperationalError`
`HV00A` | `FdwInvalidStringFormat` | `OperationalError`
`HV00B` | `FdwInvalidHandle` | `OperationalError`
`HV00C` | `FdwInvalidOptionIndex` | `OperationalError`
`HV00D` | `FdwInvalidOptionName` | `OperationalError`
`HV00J` | `FdwOptionNameNotFound` | `OperationalError`
`HV00K` | `FdwReplyHandle` | `OperationalError`
`HV00L` | `FdwUnableToCreateExecution` | `OperationalError`
`HV00M` | `FdwUnableToCreateReply` | `OperationalError`
`HV00N` | `FdwUnableToEstablishConnection` | `OperationalError`
`HV00P` | `FdwNoSchemas` | `OperationalError`
`HV00Q` | `FdwSchemaNotFound` | `OperationalError`
`HV00R` | `FdwTableNotFound` | `OperationalError`
`HV010` | `FdwFunctionSequenceError` | `OperationalError`
`HV014` | `FdwTooManyHandles` | `OperationalError`
`HV021` | `FdwInconsistentDescriptorInformation` | `OperationalError`
`HV024` | `FdwInvalidAttributeValue` | `OperationalError`
`HV090` | `FdwInvalidStringLengthOrBufferLength` | `OperationalError`
`HV091` | `FdwInvalidDescriptorFieldIdentifier` | `OperationalError`
Class P0: PL/pgSQL Error
`P0000` | `PlpgsqlError` | `InternalError`
`P0001` | `RaiseException` | `InternalError`
`P0002` | `NoDataFound` | `InternalError`
`P0003` | `TooManyRows` | `InternalError`
`P0004` | `AssertFailure` | `InternalError`
Class XX: Internal Error
`XX000` | `InternalError_` | `InternalError`
`XX001` | `DataCorrupted` | `InternalError`
`XX002` | `IndexCorrupted` | `InternalError`