<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>psycopg2.errorcodes – Error codes defined by PostgreSQL — Psycopg 2.5.1 documentation</title> <link rel="stylesheet" href="_static/psycopg.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: './', VERSION: '2.5.1', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="_static/jquery.js"></script> <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="top" title="Psycopg 2.5.1 documentation" href="index.html" /> <link rel="next" title="Frequently Asked Questions" href="faq.html" /> <link rel="prev" title="psycopg2.extras – Miscellaneous goodies for Psycopg 2" href="extras.html" /> </head> <body> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="faq.html" title="Frequently Asked Questions" accesskey="N">next</a> |</li> <li class="right" > <a href="extras.html" title="psycopg2.extras – Miscellaneous goodies for Psycopg 2" accesskey="P">previous</a> |</li> <li><a href="index.html">Psycopg 2.5.1 documentation</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="psycopg2-errorcodes-error-codes-defined-by-postgresql"> <h1><a class="reference internal" href="#module-psycopg2.errorcodes" title="psycopg2.errorcodes"><tt class="xref py py-obj docutils literal"><span class="pre">psycopg2.errorcodes</span></tt></a> – Error codes defined by PostgreSQL<a class="headerlink" href="#psycopg2-errorcodes-error-codes-defined-by-postgresql" title="Permalink to this headline">¶</a></h1> <span class="target" id="module-psycopg2.errorcodes"><span id="index-0"></span></span><div class="versionadded"> <p><span>New in version 2.0.6.</span></p> </div> <p>This module contains symbolic names for all PostgreSQL error codes and error classes codes. Subclasses of <a class="reference internal" href="module.html#psycopg2.Error" title="psycopg2.Error"><tt class="xref py py-obj docutils literal"><span class="pre">Error</span></tt></a> make the PostgreSQL error code available in the <a class="reference internal" href="module.html#psycopg2.Error.pgcode" title="psycopg2.Error.pgcode"><tt class="xref py py-obj docutils literal"><span class="pre">pgcode</span></tt></a> attribute.</p> <p>From PostgreSQL documentation:</p> <blockquote> <div><p>All messages emitted by the PostgreSQL server are assigned five-character error codes that follow the SQL standard’s conventions for <tt class="sql docutils literal"><span class="pre">SQLSTATE</span></tt> codes. Applications that need to know which error condition has occurred should usually test the error code, rather than looking at the textual error message. The error codes are less likely to change across PostgreSQL releases, and also are not subject to change due to localization of error messages. Note that some, but not all, of the error codes produced by PostgreSQL are defined by the SQL standard; some additional error codes for conditions not defined by the standard have been invented or borrowed from other databases.</p> <p>According to the standard, the first two characters of an error code denote a class of errors, while the last three characters indicate a specific condition within that class. Thus, an application that does not recognize the specific error code can still be able to infer what to do from the error class.</p> </div></blockquote> <div class="admonition seealso"> <p class="first admonition-title">See also</p> <p class="last"><a class="reference external" href="http://www.postgresql.org/docs/current/static/errcodes-appendix.html#ERRCODES-TABLE">PostgreSQL Error Codes table</a></p> </div> <p>An example of the available constants defined in the module:</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">errorcodes</span><span class="o">.</span><span class="n">CLASS_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION</span> <span class="go">'42'</span> <span class="gp">>>> </span><span class="n">errorcodes</span><span class="o">.</span><span class="n">UNDEFINED_TABLE</span> <span class="go">'42P01'</span> </pre></div> </div> <p>Constants representing all the error values documented by PostgreSQL versions between 8.1 and 9.2 are included in the module.</p> <dl class="function"> <dt id="psycopg2.errorcodes.lookup"> <tt class="descclassname">psycopg2.errorcodes.</tt><tt class="descname">lookup</tt><big>(</big><em>code</em><big>)</big><a class="headerlink" href="#psycopg2.errorcodes.lookup" title="Permalink to this definition">¶</a></dt> <dd><p>Lookup an error code or class code and return its symbolic name.</p> <p>Raise <a class="reference external" href="http://docs.python.org/3.2/library/exceptions.html#KeyError" title="(in Python v3.2)"><tt class="xref py py-obj docutils literal"><span class="pre">KeyError</span></tt></a> if the code is not found.</p> <div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="k">try</span><span class="p">:</span> <span class="gp">... </span> <span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s">"SELECT ouch FROM aargh;"</span><span class="p">)</span> <span class="gp">... </span><span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="gp">... </span> <span class="k">pass</span> <span class="gp">...</span> <span class="gp">>>> </span><span class="n">errorcodes</span><span class="o">.</span><span class="n">lookup</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">pgcode</span><span class="p">[:</span><span class="mi">2</span><span class="p">])</span> <span class="go">'CLASS_SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION'</span> <span class="gp">>>> </span><span class="n">errorcodes</span><span class="o">.</span><span class="n">lookup</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">pgcode</span><span class="p">)</span> <span class="go">'UNDEFINED_TABLE'</span> </pre></div> </div> <div class="versionadded"> <p><span>New in version 2.0.14.</span></p> </div> </dd></dl> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h4>Previous topic</h4> <p class="topless"><a href="extras.html" title="previous chapter"><tt class="docutils literal"><span class="pre">psycopg2.extras</span></tt> – Miscellaneous goodies for Psycopg 2</a></p> <h4>Next topic</h4> <p class="topless"><a href="faq.html" title="next chapter">Frequently Asked Questions</a></p> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="_sources/errorcodes.txt" rel="nofollow">Show Source</a></li> </ul> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> Enter search terms or a module, class or function name. </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="faq.html" title="Frequently Asked Questions" >next</a> |</li> <li class="right" > <a href="extras.html" title="psycopg2.extras – Miscellaneous goodies for Psycopg 2" >previous</a> |</li> <li><a href="index.html">Psycopg 2.5.1 documentation</a> »</li> </ul> </div> <div class="footer"> © Copyright 2001-2013, Federico Di Gregorio. Documentation by Daniele Varrazzo. Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b1. </div> </body> </html>