{"title":"Index de modèles spécifiques à PostgreSQL","version":"4.1","locale":"fr","docname":"ref/contrib/postgres/indexes","url":"/fr/4.1/ref/contrib/postgres/indexes/","canonical":"https://djangodocs.dev/fr/4.1/ref/contrib/postgres/indexes/","summary":"Les éléments suivants sont des index spécifiques à PostgreSQL disponibles dans le module django.contrib.postgres.indexes . BloomIndex Lien vers cette rubrique #…","html":"<span id=\"postgresql-specific-model-indexes\"></span><h1>Index de modèles spécifiques à PostgreSQL<a class=\"heading-anchor\" href=\"#module-django.contrib.postgres.indexes\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Les éléments suivants sont des <a class=\"reference internal\" href=\"/fr/4.1/ref/models/indexes/\"><span class=\"doc\">index</span></a> spécifiques à PostgreSQL disponibles dans le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.indexes</span></code>.</p>\n<section id=\"bloomindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">BloomIndex</span></code><a class=\"heading-anchor\" href=\"#bloomindex\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.BloomIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BloomIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">length</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">columns</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">()</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.BloomIndex\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Crée un index <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/bloom.html\">bloom</a>.</p>\n<p>Pour utiliser cet index, vous devez activer l’extension <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/bloom.html\">bloom</a> dans PostgreSQL. Vous pouvez l’installer en utilisant l’opération de migration <a class=\"reference internal\" href=\"/fr/4.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.BloomExtension\" title=\"django.contrib.postgres.operations.BloomExtension\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BloomExtension</span></code></a>.</p>\n<p>Indiquez un nombre entier de bits de 1 à 4096 dans le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">length</span></code> pour indiquer la longueur de chaque entrée d’index. La valeur par défaut dans PostgreSQL est 80.</p>\n<p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">columns</span></code> accepte un tuple ou une liste jusqu’à 32 valeurs de nombres entiers de bits de 1 à 4095.</p>\n</dd></dl>\n\n</section>\n<section id=\"brinindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">BrinIndex</span></code><a class=\"heading-anchor\" href=\"#brinindex\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.BrinIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BrinIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">autosummarize</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">pages_per_range</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.BrinIndex\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Créé un <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/brin-intro.html\">index BRIN</a>.</p>\n<p>Définissez le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">autosummarize</span></code> à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> pour activer le <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/brin-intro.html#BRIN-OPERATION\">résumé automatique</a> appliqué par autovacuum.</p>\n<p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">pages_per_range</span></code> accepte un nombre entier positif.</p>\n</dd></dl>\n\n</section>\n<section id=\"btreeindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">BTreeIndex</span></code><a class=\"heading-anchor\" href=\"#btreeindex\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.BTreeIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BTreeIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fillfactor</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.BTreeIndex\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Crée un index B-Tree.</p>\n<p>Indiquez un nombre entier entre 10 et 100 pour le paramètre <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS\">fillfactor</a> afin d’ajuster la compression des pages d’index. La valeur par défaut de PostgreSQL est de 90.</p>\n</dd></dl>\n\n</section>\n<section id=\"ginindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">GinIndex</span></code><a class=\"heading-anchor\" href=\"#ginindex\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.GinIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">GinIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fastupdate</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">gin_pending_list_limit</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.GinIndex\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Créé un <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gin.html\">index gin</a>.</p>\n<p>Pour utiliser cet index sur des types de données ne figurant pas dans les <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gin-builtin-opclasses.html\">classes d’opérateurs intégrés</a>, vous devez activer <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/btree-gin.html\">l’extension btree_gin</a> dans PostgreSQL. Vous pouvez installer l’extension par une opération de migration <a class=\"reference internal\" href=\"/fr/4.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.BtreeGinExtension\" title=\"django.contrib.postgres.operations.BtreeGinExtension\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BtreeGinExtension</span></code></a>.</p>\n<p>Définissez le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">fastupdate</span></code> à <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> pour désactiver la <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gin-implementation.html#GIN-FAST-UPDATE\">technique de mise à jour GIN rapide</a> qui est activée par défaut dans PostgreSQL.</p>\n<p>Provide an integer number of kilobytes to the <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-GIN-PENDING-LIST-LIMIT\">gin_pending_list_limit</a>\nparameter to tune the maximum size of the GIN pending list which is used\nwhen <code class=\"docutils literal notranslate\"><span class=\"pre\">fastupdate</span></code> is enabled.</p>\n</dd></dl>\n\n</section>\n<section id=\"gistindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">GistIndex</span></code><a class=\"heading-anchor\" href=\"#gistindex\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.GistIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">GistIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">buffering</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fillfactor</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.GistIndex\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Crée un <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gist.html\">index GiST</a>. Ces index sont automatiquement créés pour les champs spatiaux ayant <a class=\"reference internal\" href=\"/fr/4.1/ref/contrib/gis/model-api/#django.contrib.gis.db.models.BaseSpatialField.spatial_index\" title=\"django.contrib.gis.db.models.BaseSpatialField.spatial_index\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">spatial_index=True</span></code></a>. Ils sont également utiles pour d’autres types, tels que <a class=\"reference internal\" href=\"/fr/4.1/ref/contrib/postgres/fields/#django.contrib.postgres.fields.HStoreField\" title=\"django.contrib.postgres.fields.HStoreField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HStoreField</span></code></a> ou les <a class=\"reference internal\" href=\"/fr/4.1/ref/contrib/postgres/fields/#range-fields\"><span class=\"std std-ref\">champs d’intervalle</span></a>.</p>\n<p>Pour utiliser cet index sur des types de données ne figurant pas dans les <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gist-builtin-opclasses.html\">classes d’opérateurs gist</a> intégrées, vous devez activer <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/btree-gist.html\">l’extension btree_gist</a> dans PostgreSQL. Vous pouvez installer l’extension par une opération de migration <a class=\"reference internal\" href=\"/fr/4.1/ref/contrib/postgres/operations/#django.contrib.postgres.operations.BtreeGistExtension\" title=\"django.contrib.postgres.operations.BtreeGistExtension\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BtreeGistExtension</span></code></a>.</p>\n<p>Définissez le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">buffering</span></code> à <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> ou <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> pour activer ou désactiver manuellement la <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/gist-implementation.html#GIST-BUFFERING-BUILD\">construction avec tampon</a> de l’index.</p>\n<p>Indiquez un nombre entier entre 10 et 100 pour le paramètre <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS\">fillfactor</a> afin d’ajuster la compression des pages d’index. La valeur par défaut de PostgreSQL est de 90.</p>\n</dd></dl>\n\n</section>\n<section id=\"hashindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">HashIndex</span></code><a class=\"heading-anchor\" href=\"#hashindex\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.HashIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HashIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fillfactor</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.HashIndex\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Crée un index hash.</p>\n<p>Indiquez un nombre entier entre 10 et 100 pour le paramètre <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS\">fillfactor</a> afin d’ajuster la compression des pages d’index. La valeur par défaut de PostgreSQL est de 90.</p>\n</dd></dl>\n\n</section>\n<section id=\"spgistindex\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">SpGistIndex</span></code><a class=\"heading-anchor\" href=\"#spgistindex\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.SpGistIndex\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">SpGistIndex</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">*</span></span><span class=\"n\"><span class=\"pre\">expressions</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">fillfactor</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.SpGistIndex\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Créé un <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/spgist.html\">index SP-GiST</a>.</p>\n<p>Indiquez un nombre entier entre 10 et 100 pour le paramètre <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS\">fillfactor</a> afin d’ajuster la compression des pages d’index. La valeur par défaut de PostgreSQL est de 90.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.1\">\n<p class=\"version-note-title\">Changed in Django 4.1</p><p>Support for covering SP-GiST indexes on PostgreSQL 14+ was added.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"opclass-expressions\">\n<h2>Expressions <code class=\"docutils literal notranslate\"><span class=\"pre\">OpClass()</span></code><a class=\"heading-anchor\" href=\"#opclass-expressions\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.indexes.OpClass\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">OpClass</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expression</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.indexes.OpClass\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Une expression <code class=\"docutils literal notranslate\"><span class=\"pre\">OpClass()</span></code> représente l”<code class=\"docutils literal notranslate\"><span class=\"pre\">expression</span></code> avec une <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/indexes-opclass.html\">classe d’opérateur</a> personnalisée permettant de définir des index fonctionnels, des contraintes d’unicité fonctionnelles ou des contraintes d’exclusion. Pour l’utiliser, vous devez ajouter <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.postgres'</span></code> dans votre réglage <a class=\"reference internal\" href=\"/fr/4.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>. Définissez le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> au nom de la <a href=\"#id4\"><span class=\"problematic\" id=\"id5\">`classe d'opérateur`_</span></a>.</p>\n<p>Par exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">Index</span><span class=\"p\">(</span>\n    <span class=\"n\">OpClass</span><span class=\"p\">(</span><span class=\"n\">Lower</span><span class=\"p\">(</span><span class=\"s1\">&#39;username&#39;</span><span class=\"p\">),</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;varchar_pattern_ops&#39;</span><span class=\"p\">),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;lower_username_idx&#39;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>crée un index sur <code class=\"docutils literal notranslate\"><span class=\"pre\">Lower('username')</span></code> en utilisant <code class=\"docutils literal notranslate\"><span class=\"pre\">varchar_pattern_ops</span></code>.</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">UniqueConstraint</span><span class=\"p\">(</span>\n    <span class=\"n\">OpClass</span><span class=\"p\">(</span><span class=\"n\">Upper</span><span class=\"p\">(</span><span class=\"s1\">&#39;description&#39;</span><span class=\"p\">),</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;text_pattern_ops&#39;</span><span class=\"p\">),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;upper_description_unique&#39;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>crée un contrainte d’unicité sur <code class=\"docutils literal notranslate\"><span class=\"pre\">Upper('description')</span></code> en utilisant <code class=\"docutils literal notranslate\"><span class=\"pre\">text_pattern_ops</span></code>.</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">ExclusionConstraint</span><span class=\"p\">(</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;exclude_overlapping_ops&#39;</span><span class=\"p\">,</span>\n    <span class=\"n\">expressions</span><span class=\"o\">=</span><span class=\"p\">[</span>\n        <span class=\"p\">(</span><span class=\"n\">OpClass</span><span class=\"p\">(</span><span class=\"s1\">&#39;circle&#39;</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s1\">&#39;circle_ops&#39;</span><span class=\"p\">),</span> <span class=\"n\">RangeOperators</span><span class=\"o\">.</span><span class=\"n\">OVERLAPS</span><span class=\"p\">),</span>\n    <span class=\"p\">],</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>crée une contrainte d’exclusion sur <code class=\"docutils literal notranslate\"><span class=\"pre\">circle</span></code> en utilisant <code class=\"docutils literal notranslate\"><span class=\"pre\">circle_ops</span></code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.0\">\n<p class=\"version-note-title\">Changed in Django 4.0</p><p>La prise en charge des contraintes d’unicité sur la base de fonctions a été ajoutée.</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"4.1\">\n<p class=\"version-note-title\">Changed in Django 4.1</p><p>La prise en charge des contraintes d’exclusion a été ajoutée.</p>\n</aside>\n</dd></dl>\n\n</section>","rootId":"module-django.contrib.postgres.indexes","toc":[{"title":"BloomIndex","anchor":"bloomindex","children":[]},{"title":"BrinIndex","anchor":"brinindex","children":[]},{"title":"BTreeIndex","anchor":"btreeindex","children":[]},{"title":"GinIndex","anchor":"ginindex","children":[]},{"title":"GistIndex","anchor":"gistindex","children":[]},{"title":"HashIndex","anchor":"hashindex","children":[]},{"title":"SpGistIndex","anchor":"spgistindex","children":[]},{"title":"Expressions OpClass()","anchor":"opclass-expressions","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/4.1/ref/"},{"docname":"ref/contrib/index","title":"Paquets contrib","url":"/fr/4.1/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/fr/4.1/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/functions","title":"Fonctions de bases de données spécifiques à PostgreSQL","url":"/fr/4.1/ref/contrib/postgres/functions/"},"next":{"docname":"ref/contrib/postgres/lookups","title":"Recherches spécifiques à PostgreSQL","url":"/fr/4.1/ref/contrib/postgres/lookups/"},"formats":{"html":"/fr/4.1/ref/contrib/postgres/indexes/","markdown":"/fr/4.1/ref/contrib/postgres/indexes.md","json":"/fr/4.1/ref/contrib/postgres/indexes.json"},"source":"https://github.com/django/django/blob/stable/4.1.x/docs/ref/contrib/postgres/indexes.txt","official":"https://docs.djangoproject.com/fr/4.1/ref/contrib/postgres/indexes/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}