Documentation PostgreSQL 9.5 · 11.6. Index d'unicité ..... 288

1943
Documentation PostgreSQL 9.5.22 The PostgreSQL Global Development Group

Transcript of Documentation PostgreSQL 9.5 · 11.6. Index d'unicité ..... 288

  • Documentation PostgreSQL 9.5.22

    The PostgreSQL Global Development Group

  • Documentation PostgreSQL 9.5.22The PostgreSQL Global Development GroupCopyright © 1996-2020 The PostgreSQL Global Development Group

    Legal Notice

    PostgreSQL™ is Copyright (c) 1996-2020 by the PostgreSQL Global Development Group.

    Postgres95™ is Copyright (c) 1994-5 by the Regents of the University of California.

    Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby gran-ted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.

    IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, ORCONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVENIF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WAR-RANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN « AS-IS »BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,OR MODIFICATIONS.

  • Préface ...................................................................................................................................................... xviii1. Définition de PostgreSQL™ ................................................................................................................ xviii2. Bref historique de PostgreSQL™ .......................................................................................................... xviii3. Conventions ........................................................................................................................................ xx4. Pour plus d'informations ......................................................................................................................... xx5. Lignes de conduite pour les rapports de bogues .......................................................................................... xx

    I. Tutoriel ...................................................................................................................................................... 11. Démarrage ............................................................................................................................................ 2

    1.1. Installation ................................................................................................................................... 21.2. Concepts architecturaux de base ....................................................................................................... 21.3. Création d'une base de données ........................................................................................................ 21.4. Accéder à une base ........................................................................................................................ 4

    2. Le langage SQL .................................................................................................................................... 52.1. Introduction ................................................................................................................................. 52.2. Concepts ..................................................................................................................................... 52.3. Créer une nouvelle table ................................................................................................................. 52.4. Remplir une table avec des lignes ..................................................................................................... 62.5. Interroger une table ........................................................................................................................ 62.6. Jointures entre les tables ................................................................................................................. 82.7. Fonctions d'agrégat ........................................................................................................................ 92.8. Mises à jour ................................................................................................................................ 112.9. Suppressions ............................................................................................................................... 11

    3. Fonctionnalités avancées ........................................................................................................................ 123.1. Introduction ................................................................................................................................ 123.2. Vues .......................................................................................................................................... 123.3. Clés étrangères ............................................................................................................................ 123.4. Transactions ................................................................................................................................ 133.5. Fonctions de fenêtrage .................................................................................................................. 143.6. Héritage ........................................................................................................................................3.7. Conclusion .................................................................................................................................. 18

    II. Langage SQL ............................................................................................................................................ 194. Syntaxe SQL ....................................................................................................................................... 20

    4.1. Structure lexicale ......................................................................................................................... 204.2. Expressions de valeurs .................................................................................................................. 274.3. Fonctions appelantes ..................................................................................................................... 38

    5. Définition des données ........................................................................................................................... 415.1. Notions fondamentales sur les tables ................................................................................................ 415.2. Valeurs par défaut ........................................................................................................................ 425.3. Contraintes ................................................................................................................................. 425.4. Colonnes système ......................................................................................................................... 495.5. Modification des tables .................................................................................................................. 505.6. Droits ......................................................................................................................................... 515.7. Row Security Policies ................................................................................................................... 525.8. Schémas ..................................................................................................................................... 565.9. L'héritage ......................................................................................................................................5.10. Partitionnement .......................................................................................................................... 635.11. Données distantes ....................................................................................................................... 685.12. Autres objets de la base de données ................................................................................................ 695.13. Gestion des dépendances .............................................................................................................. 69

    6. Manipulation de données ........................................................................................................................ 716.1. Insérer des données ....................................................................................................................... 716.2. Actualiser les données ................................................................................................................... 726.3. Supprimer des données .................................................................................................................. 726.4. Renvoyer des données provenant de lignes modifiées .......................................................................... 73

    7. Requêtes ............................................................................................................................................. 747.1. Aperçu ....................................................................................................................................... 747.2. Expressions de table ..................................................................................................................... 747.3. Listes de sélection ........................................................................................................................ 867.4. Combiner des requêtes .................................................................................................................. 877.5. Tri des lignes ............................................................................................................................... 877.6. LIMIT et OFFSET ....................................................................................................................... 887.7. Listes VALUES ............................................................................................................................ 89

    iii

  • 7.8. Requêtes WITH (Common Table Expressions) ................................................................................... 898. Types de données ................................................................................................................................. 95

    8.1. Types numériques ........................................................................................................................ 968.2. Types monétaires ......................................................................................................................... 998.3. Types caractère .......................................................................................................................... 1008.4. Types de données binaires ............................................................................................................ 1028.5. Types date/heure ........................................................................................................................ 1038.6. Type booléen ............................................................................................................................. 1128.7. Types énumération ..................................................................................................................... 1138.8. Types géométriques .................................................................................................................... 1148.9. Types adresses réseau ................................................................................................................. 1168.10. Type chaîne de bits ................................................................................................................... 1188.11. Types de recherche plein texte .................................................................................................... 1188.12. Type UUID ............................................................................................................................. 1218.13. Type XML .............................................................................................................................. 1218.14. Types JSON ............................................................................................................................ 1238.15. Tableaux ................................................................................................................................. 1288.16. Types composites ..................................................................................................................... 1368.17. Types intervalle de valeurs ......................................................................................................... 1408.18. Types identifiant d'objet ............................................................................................................. 1458.19. pg_lsn Type ............................................................................................................................. 1468.20. Pseudo-Types .......................................................................................................................... 147

    9. Fonctions et opérateurs ........................................................................................................................ 1489.1. Opérateurs logiques .................................................................................................................... 1489.2. Opérateurs de comparaison .......................................................................................................... 1489.3. Fonctions et opérateurs mathématiques ........................................................................................... 1509.4. Fonctions et opérateurs de chaînes ................................................................................................. 1529.5. Fonctions et opérateurs de chaînes binaires ...................................................................................... 1639.6. Fonctions et opérateurs sur les chaînes de bits .................................................................................. 1659.7. Correspondance de motif ............................................................................................................. 1669.8. Fonctions de formatage des types de données .................................................................................. 1789.9. Fonctions et opérateurs sur date/heure ............................................................................................ 1839.10. Fonctions de support enum ......................................................................................................... 1939.11. Fonctions et opérateurs géométriques ........................................................................................... 1949.12. Fonctions et opérateurs sur les adresses réseau ............................................................................... 1979.13. Fonctions et opérateurs de la recherche plein texte .......................................................................... 1999.14. Fonctions XML ........................................................................................................................ 2029.15. Fonctions et opérateurs JSON ..................................................................................................... 2119.16. Fonctions de manipulation de séquences ....................................................................................... 2189.17. Expressions conditionnelles ........................................................................................................ 2209.18. Fonctions et opérateurs de tableaux .............................................................................................. 2229.19. Fonctions et opérateurs sur les données de type range ...................................................................... 2259.20. Fonctions d'agrégat ................................................................................................................... 2279.21. Fonctions Window .................................................................................................................... 2369.22. Expressions de sous-requêtes ...................................................................................................... 2379.23. Comparaisons de lignes et de tableaux .......................................................................................... 2409.24. Fonctions retournant des ensembles ............................................................................................. 2429.25. Fonctions d'informations système ................................................................................................ 2459.26. Fonctions d'administration système .............................................................................................. 2569.27. Fonctions trigger ...................................................................................................................... 2709.28. Fonctions des triggers sur les événements ...................................................................................... 271

    10. Conversion de types .......................................................................................................................... 27410.1. Aperçu ................................................................................................................................... 27410.2. Opérateurs ............................................................................................................................... 27510.3. Fonctions ................................................................................................................................ 27810.4. Stockage de valeurs ................................................................................................................... 28010.5. Constructions UNION, CASE et constructions relatives .................................................................... 281

    11. Index .............................................................................................................................................. 28411.1. Introduction ............................................................................................................................. 28411.2. Types d'index ........................................................................................................................... 28411.3. Index multicolonnes .................................................................................................................. 28611.4. Index et ORDER BY .................................................................................................................. 28711.5. Combiner des index multiples ..................................................................................................... 288

    Documentation PostgreSQL 9.5.22

    iv

  • 11.6. Index d'unicité ......................................................................................................................... 28811.7. Index d'expressions ................................................................................................................... 28911.8. Index partiels ........................................................................................................................... 28911.9. Classes et familles d'opérateurs ................................................................................................... 29111.10. Index et collationnements ......................................................................................................... 29211.11. Examiner l'utilisation des index ................................................................................................. 293

    12. Recherche plein texte ......................................................................................................................... 29512.1. Introduction ............................................................................................................................. 29512.2. Tables et index ......................................................................................................................... 29712.3. Contrôler la recherche plein texte ................................................................................................. 29912.4. Fonctionnalités supplémentaires .................................................................................................. 30412.5. Analyseurs .............................................................................................................................. 30812.6. Dictionnaires ........................................................................................................................... 31012.7. Exemple de configuration ........................................................................................................... 31712.8. Tester et déboguer la recherche plein texte ..................................................................................... 31812.9. Types d'index GiST et GIN ........................................................................................................ 32112.10. Support de psql ....................................................................................................................... 32212.11. Limites ................................................................................................................................. 32412.12. Migration à partir d'une recherche plein texte antérieure à 8.3 .......................................................... 325

    13. Contrôle d'accès simultané .................................................................................................................. 32613.1. Introduction ............................................................................................................................. 32613.2. Isolation des transactions ........................................................................................................... 32613.3. Verrouillage explicite ................................................................................................................ 33113.4. Vérification de cohérence des données au niveau de l'application ....................................................... 33513.5. Avertissements ......................................................................................................................... 33613.6. Verrous et index ....................................................................................................................... 336

    14. Conseils sur les performances .............................................................................................................. 33814.1. Utiliser EXPLAIN ................................................................................................................... 33814.2. Statistiques utilisées par le planificateur ........................................................................................ 34714.3. Contrôler le planificateur avec des clauses JOIN explicites .............................................................. 34814.4. Remplir une base de données ...................................................................................................... 34914.5. Configuration avec une perte acceptée .......................................................................................... 352

    III. Administration du serveur ......................................................................................................................... 35315. Procédure d'installation de PostgreSQL™ du code source ......................................................................... 354

    15.1. Version courte ......................................................................................................................... 35415.2. Prérequis ................................................................................................................................. 35415.3. Obtenir les sources .................................................................................................................... 35515.4. Procédure d'installation .............................................................................................................. 35615.5. Initialisation post-installation ...................................................................................................... 36415.6. Démarrer ................................................................................................................................ 36515.7. Et maintenant ? ........................................................................................................................ 36615.8. Plateformes supportées .............................................................................................................. 36715.9. Notes spécifiques à des plateformes ............................................................................................. 367

    16. Installation à partir du code source sur Windows™ .................................................................................. 37516.1. Construire avec Visual C++™ ou le Microsoft Windows SDK™ ....................................................... 37516.2. Construire libpq avec Visual C++™ ou Borland C++™ ................................................................... 379

    17. Configuration du serveur et mise en place .............................................................................................. 38017.1. Compte utilisateur PostgreSQL™ ................................................................................................ 38017.2. Créer un groupe de base de données ............................................................................................. 38017.3. Lancer le serveur de bases de données .......................................................................................... 38117.4. Gérer les ressources du noyau ..................................................................................................... 38317.5. Arrêter le serveur ...................................................................................................................... 39117.6. Mise à jour d'une instance PostgreSQL™ ...................................................................................... 39217.7. Empêcher l'usurpation de serveur ................................................................................................. 39417.8. Options de chiffrement .............................................................................................................. 39417.9. Connexions tcp/ip sécurisées avec ssl ........................................................................................... 39517.10. Connexions tcp/ip sécurisées avec des tunnels ssh tunnels ............................................................... 39817.11. Enregistrer le journal des événements sous Windows .................................................................... 399

    18. Configuration du serveur .................................................................................................................... 40018.1. Paramètres de configuration ........................................................................................................ 40018.2. Emplacement des fichiers ........................................................................................................... 40318.3. Connexions et authentification .................................................................................................... 40418.4. Consommation des ressources ..................................................................................................... 408

    Documentation PostgreSQL 9.5.22

    v

  • 18.5. Write Ahead Log ...................................................................................................................... 41218.6. Réplication .............................................................................................................................. 41618.7. Planification des requêtes ........................................................................................................... 41918.8. Remonter et tracer les erreurs ...................................................................................................... 42318.9. Statistiques d'exécution .............................................................................................................. 43018.10. Nettoyage (vacuum) automatique .............................................................................................. 43118.11. Valeurs par défaut des connexions client ..................................................................................... 43318.12. Gestion des verrous ................................................................................................................. 43918.13. Compatibilité de version et de plateforme .................................................................................... 44018.14. Gestion des erreurs .................................................................................................................. 44118.15. Options préconfigurées ............................................................................................................ 44218.16. Options personnalisées ............................................................................................................. 44318.17. Options pour les développeurs ................................................................................................... 44318.18. Options courtes ...................................................................................................................... 445

    19. Authentification du client ................................................................................................................... 44719.1. Le fichier pg_hba.conf ......................................................................................................... 44719.2. Correspondances d'utilisateurs .................................................................................................... 45219.3. Méthodes d'authentification ........................................................................................................ 45319.4. Problèmes d'authentification ....................................................................................................... 459

    20. Rôles de la base de données ................................................................................................................ 46120.1. Rôles de la base de données ........................................................................................................ 46120.2. Attributs des rôles ..................................................................................................................... 46120.3. Appartenance d'un rôle .............................................................................................................. 46220.4. Supprimer des rôles ................................................................................................................... 46420.5. Sécurité des fonctions ................................................................................................................ 464

    21. Administration des bases de données .................................................................................................... 46521.1. Aperçu ................................................................................................................................... 46521.2. Création d'une base de données ................................................................................................... 46521.3. Bases de données modèles .......................................................................................................... 46621.4. Configuration d'une base de données ............................................................................................ 46721.5. Détruire une base de données ...................................................................................................... 46721.6. Tablespaces ............................................................................................................................. 467

    22. Localisation ..................................................................................................................................... 47022.1. Support des locales ................................................................................................................... 47022.2. Support des collations ................................................................................................................ 47222.3. Support des jeux de caractères ..................................................................................................... 474

    23. Planifier les tâches de maintenance ....................................................................................................... 47923.1. Nettoyages réguliers .................................................................................................................. 47923.2. Ré-indexation régulière .............................................................................................................. 48523.3. Maintenance du fichier de traces .................................................................................................. 485

    24. Sauvegardes et restaurations ................................................................................................................ 48724.1. Sauvegarde SQL ...................................................................................................................... 48724.2. Sauvegarde de niveau système de fichiers ...................................................................................... 48924.3. Archivage continu et récupération d'un instantané (PITR) ................................................................. 490

    25. Haute disponibilité, répartition de charge et réplication ............................................................................. 49925.1. Comparaison de différentes solutions ........................................................................................... 49925.2. Serveurs de Standby par transfert de journaux ................................................................................ 50125.3. Bascule (Failover) .................................................................................................................... 50825.4. Méthode alternative pour le log shipping ....................................................................................... 50825.5. Hot Standby ............................................................................................................................ 510

    26. Configuration de la récupération .......................................................................................................... 51726.1. Paramètres de récupération de l'archive ......................................................................................... 51726.2. Paramètres de cible de récupération .............................................................................................. 51826.3. Paramètres de serveur de Standby ................................................................................................ 519

    27. Surveiller l'activité de la base de données ............................................................................................... 52027.1. Outils Unix standard ................................................................................................................. 52027.2. Le récupérateur de statistiques ..................................................................................................... 52127.3. Visualiser les verrous ................................................................................................................ 53327.4. Traces dynamiques ................................................................................................................... 533

    28. Surveiller l'utilisation des disques ......................................................................................................... 54228.1. Déterminer l'utilisation des disques .............................................................................................. 54228.2. Panne pour disque saturé ............................................................................................................ 543

    29. Fiabilité et journaux de transaction ....................................................................................................... 544

    Documentation PostgreSQL 9.5.22

    vi

  • 29.1. Fiabilité .................................................................................................................................. 54429.2. Write-Ahead Logging (WAL) ..................................................................................................... 54529.3. Validation asynchrone (Asynchronous Commit) ............................................................................. 54629.4. Configuration des journaux de transaction ..................................................................................... 54729.5. Vue interne des journaux de transaction ........................................................................................ 549

    30. Tests de régression ............................................................................................................................ 55130.1. Lancer les tests ......................................................................................................................... 55130.2. Évaluation des tests ................................................................................................................... 55330.3. Fichiers de comparaison de variants ............................................................................................. 55530.4. TAP Tests ............................................................................................................................... 55630.5. Examen de la couverture du test .................................................................................................. 556

    IV. Interfaces client ...................................................................................................................................... 55731. libpq - Bibliothèque C ........................................................................................................................ 558

    31.1. Fonctions de contrôle de connexion à la base de données .................................................................. 55831.2. Fonctions de statut de connexion ................................................................................................. 56731.3. Fonctions de commandes d'exécution ........................................................................................... 57131.4. Traitement des commandes asynchrones ....................................................................................... 58331.5. Récupérer le résultats des requêtes ligne par ligne ........................................................................... 58631.6. Annuler des requêtes en cours d'exécution ..................................................................................... 58731.7. Interface à chemin rapide ........................................................................................................... 58831.8. Notification asynchrone ............................................................................................................. 58931.9. Fonctions associées avec la commande COPY ............................................................................... 58931.10. Fonctions de contrôle ............................................................................................................... 59331.11. Fonctions diverses ................................................................................................................... 59431.12. Traitement des messages .......................................................................................................... 59631.13. Système d'événements ............................................................................................................. 59731.14. Variables d'environnement ........................................................................................................ 60231.15. Fichier de mots de passe ........................................................................................................... 60331.16. Fichier des connexions de service ............................................................................................... 60431.17. Recherches LDAP des paramètres de connexion ........................................................................... 60431.18. Support de SSL ...................................................................................................................... 60531.19. Comportement des programmes threadés ..................................................................................... 60831.20. Construire des applications avec libpq ......................................................................................... 60931.21. Exemples de programmes ......................................................................................................... 610

    32. Objets larges .................................................................................................................................... 61932.1. Introduction ............................................................................................................................. 61932.2. Fonctionnalités d'implémentation ................................................................................................. 61932.3. Interfaces client ........................................................................................................................ 61932.4. Fonctions du côté serveur ........................................................................................................... 62232.5. Programme d'exemple ............................................................................................................... 623

    33. ECPG SQL embarqué en C ................................................................................................................. 62833.1. Le Concept .............................................................................................................................. 62833.2. Gérer les Connexions à la Base de Données ................................................................................... 62833.3. Exécuter des Commandes SQL ................................................................................................... 63133.4. Utiliser des Variables Hôtes ........................................................................................................ 63333.5. SQL Dynamique ...................................................................................................................... 64533.6. Librairie pgtypes ...................................................................................................................... 64633.7. Utiliser les Zones de Descripteur ................................................................................................. 65833.8. Gestion des Erreurs ................................................................................................................... 66933.9. Directives de Préprocesseur ........................................................................................................ 67433.10. Traiter des Programmes en SQL Embarqué .................................................................................. 67633.11. Fonctions de la Librairie ........................................................................................................... 67633.12. Large Objects ......................................................................................................................... 67733.13. Applications C++ .................................................................................................................... 67833.14. Commandes SQL Embarquées .................................................................................................. 68133.15. Mode de Compatibilité Informix™ ............................................................................................. 70133.16. Fonctionnement Interne ............................................................................................................ 713

    34. Schéma d'information ........................................................................................................................ 71534.1. Le schéma ............................................................................................................................... 71534.2. Types de données ..................................................................................................................... 71534.3. information_schema_catalog_name ............................................................................... 71534.4. administrable_role_authorizations ........................................................................... 71634.5. applicable_roles ............................................................................................................. 716

    Documentation PostgreSQL 9.5.22

    vii

  • 34.6. attributes ......................................................................................................................... 71634.7. character_sets ................................................................................................................. 71934.8. check_constraint_routine_usage ................................................................................. 72034.9. check_constraints ........................................................................................................... 72034.10. collations ........................................................................................................................ 72034.11. collation_character_set_applicability .................................................................. 72134.12. column_domain_usage ...................................................................................................... 72134.13. column_options ................................................................................................................ 72134.14. column_privileges .......................................................................................................... 72234.15. column_udt_usage ............................................................................................................ 72234.16. columns .............................................................................................................................. 72334.17. constraint_column_usage .............................................................................................. 72534.18. constraint_table_usage ................................................................................................ 72634.19. data_type_privileges .................................................................................................... 72634.20. domain_constraints ........................................................................................................ 72734.21. domain_udt_usage ............................................................................................................ 72734.22. domains .............................................................................................................................. 72834.23. element_types .................................................................................................................. 72934.24. enabled_roles .................................................................................................................. 73134.25. foreign_data_wrapper_options .................................................................................... 73134.26. foreign_data_wrappers .................................................................................................. 73234.27. foreign_server_options ................................................................................................ 73234.28. foreign_servers .............................................................................................................. 73234.29. foreign_table_options .................................................................................................. 73334.30. foreign_tables ................................................................................................................ 73334.31. key_column_usage ............................................................................................................ 73334.32. parameters ........................................................................................................................ 73434.33. referential_constraints .............................................................................................. 73534.34. role_column_grants ........................................................................................................ 73634.35. role_routine_grants ...................................................................................................... 73634.36. role_table_grants .......................................................................................................... 73734.37. role_udt_grants .............................................................................................................. 73734.38. role_usage_grants .......................................................................................................... 73834.39. routine_privileges ........................................................................................................ 73834.40. routines ............................................................................................................................ 73934.41. schemata ............................................................................................................................ 74234.42. sequences .......................................................................................................................... 74334.43. sql_features .................................................................................................................... 74334.44. sql_implementation_info .............................................................................................. 74434.45. sql_languages .................................................................................................................. 74434.46. sql_packages .................................................................................................................... 74534.47. sql_parts .......................................................................................................................... 74534.48. sql_sizing ........................................................................................................................ 74534.49. sql_sizing_profiles ...................................................................................................... 74634.50. table_constraints .......................................................................................................... 74634.51. table_privileges ............................................................................................................ 74634.52. tables ................................................................................................................................ 74734.53. transforms ........................................................................................................................ 74834.54. triggered_update_columns ............................................................................................ 74834.55. triggers ............................................................................................................................ 74834.56. udt_privileges ................................................................................................................ 75034.57. usage_privileges ............................................................................................................ 75034.58. user_defined_types ........................................................................................................ 75134.59. user_mapping_options .................................................................................................... 75234.60. user_mappings .................................................................................................................. 75234.61. view_column_usage .......................................................................................................... 75334.62. view_routine_usage ........................................................................................................ 75334.63. view_table_usage ............................................................................................................ 75434.64. views .................................................................................................................................. 754

    V. Programmation serveur ............................................................................................................................. 75635. Étendre SQL .................................................................................................................................... 757

    35.1. L'extensibilité .......................................................................................................................... 75735.2. Le système des types de PostgreSQL™ ......................................................................................... 757

    Documentation PostgreSQL 9.5.22

    viii

  • 35.3. Fonctions utilisateur .................................................................................................................. 75835.4. Fonctions en langage de requêtes (SQL) ........................................................................................ 75935.5. Surcharge des fonctions ............................................................................................................. 77035.6. Catégories de volatilité des fonctions ............................................................................................ 77135.7. Fonctions en langage de procédures ............................................................................................. 77235.8. Fonctions internes ..................................................................................................................... 77235.9. Fonctions en langage C .............................................................................................................. 77235.10. Agrégats utilisateur ................................................................................................................. 79235.11. Types utilisateur ..................................................................................................................... 79735.12. Opérateurs définis par l'utilisateur .............................................................................................. 80035.13. Informations sur l'optimisation d'un opérateur .............................................................................. 80135.14. Interfacer des extensions d'index ................................................................................................ 80435.15. Empaqueter des objets dans une extension ................................................................................... 81435.16. Outils de construction d'extension .............................................................................................. 819

    36. Déclencheurs (triggers) ...................................................................................................................... 82236.1. Aperçu du comportement des déclencheurs .................................................................................... 82236.2. Visibilité des modifications des données ....................................................................................... 82436.3. Écrire des fonctions déclencheurs en C ......................................................................................... 82436.4. Un exemple complet de trigger .................................................................................................... 826

    37. Déclencheurs (triggers) sur évènement .................................................................................................. 83037.1. Aperçu du fonctionnement des triggers sur évènement ..................................................................... 83037.2. Matrice de déclenchement des triggers sur évènement ...................................................................... 83037.3. Écrire des fonctions trigger sur événement en C .............................................................................. 83437.4. Un exemple complet de trigger sur événement ................................................................................ 83537.5. Un exemple de trigger sur événement de table modifiée ................................................................... 836

    38. Système de règles .............................................................................................................................. 83838.1. Arbre de requêtes ..................................................................................................................... 83838.2. Vues et système de règles ........................................................................................................... 83938.3. Vues matérialisées .................................................................................................................... 84538.4. Règles sur insert, update et delete .............................................................................................. 84738.5. Règles et droits ........................................................................................................................ 85638.6. Règles et statut de commande ..................................................................................................... 85838.7. Règles contre déclencheurs ......................................................................................................... 858

    39. Langages de procédures ..................................................................................................................... 86139.1. Installation des langages de procédures ......................................................................................... 861

    40. PL/pgSQL - Langage de procédures SQL .............................................................................................. 86340.1. Aperçu ................................................................................................................................... 86340.2. Structure de PL/pgSQL .............................................................................................................. 86440.3. Déclarations ............................................................................................................................ 86540.4. Expressions ............................................................................................................................. 87040.5. Instructions de base ................................................................................................................... 87040.6. Structures de contrôle ................................................................................................................ 87740.7. Curseurs ................................................................................................................................. 88940.8. Erreurs et messages ................................................................................................................... 89440.9. Procédures trigger ..................................................................................................................... 89640.10. Les dessous de PL/pgSQL ........................................................................................................ 90240.11. Astuces pour développer en PL/pgSQL ....................................................................................... 90540.12. Portage d'Oracle™ PL/SQL ...................................................................................................... 907

    41. PL/Tcl - Langage de procédures Tcl ..................................................................................................... 91641.1. Aperçu ................................................................................................................................... 91641.2. Fonctions et arguments PL/Tcl .................................................................................................... 91641.3. Valeurs des données avec PL/Tcl ................................................................................................. 91741.4. Données globales avec PL/Tcl ..................................................................................................... 91741.5. Accès à la base de données depuis PL/Tcl ..................................................................................... 91841.6. Procédures pour déclencheurs en PL/Tcl ....................................................................................... 91941.7. Procédures de trigger sur événement en PL/Tcl .............................................................................. 92141.8. Les modules et la commande unknown ....................................................................................... 92141.9. Noms de procédure Tcl .............................................................................................................. 922

    42. PL/Perl - Langage de procédures Perl .................................................................................................... 92342.1. Fonctions et arguments PL/Perl ................................................................................................... 92342.2. Valeurs en PL/Perl .................................................................................................................... 92642.3. Fonction incluses ...................................................................................................................... 92642.4. Valeurs globales dans PL/Perl ..................................................................................................... 930

    Documentation PostgreSQL 9.5.22

    ix

  • 42.5. Niveaux de confiance de PL/Perl ................................................................................................. 93042.6. Déclencheurs PL/Perl ................................................................................................................ 93142.7. Triggers sur événements avec PL/Perl .......................................................................................... 93242.8. PL/Perl sous le capot ................................................................................................................. 933

    43. PL/Python - Langage de procédures Python ........................................................................................... 93543.1. Python 2 et Python 3 ................................................................................................................. 93543.2. Fonctions PL/Python ................................................................................................................. 93643.3. Valeur des données avec PL/Python ............................................................................................. 93743.4. Sharing Data ............................................................................................................................ 94143.5. Blocs de code anonymes ............................................................................................................ 94143.6. Fonctions de déclencheurs .......................................................................................................... 94143.7. Accès à la base de données ......................................................................................................... 94243.8. Sous-transactions explicites ........................................................................................................ 94543.9. Fonctions outils ........................................................................................................................ 94643.10. Variables d'environnement ........................................................................................................ 947

    44. Interface de programmation serveur ...................................................................................................... 94844.1. Fonctions d'interface ................................................................................................................. 94844.2. Fonctions de support d'interface .................................................................................................. 97844.3. Gestion de la mémoire ............................................................................................................... 98644.4. Visibilité des modifications de données ......................................................................................... 99544.5. Exemples ................................................................................................................................ 995

    45. Processus en tâche de fond (background worker) ..................................................................................... 99846. Décodage logique (Logical Decoding) ................................................................................................ 1001

    46.1. Exemples de décodage logique .................................................................................................. 100146.2. Concepts de décodage logique ................................................................................................... 100346.3. Interface du protocole de réplication par flux ............................................................................... 100446.4. Interface SQL de décodage logique ............................................................................................ 100446.5. Catalogues systèmes liés au décodage logique .............................................................................. 100446.6. Plugins de sortie de décodage logique ......................................................................................... 100446.7. Écrivains de sortie de décodage logique ...................................................................................... 100746.8. Support de la réplication synchrone pour le décodage logique ......................................................... 1007

    47. Tracer la progression de la réplication ................................................................................................. 1008VI. Référence ............................................................................................................................................ 1009

    I. Commandes SQL .............................................................................................................................. 1010ABORT ....................................................................................................................................... 1011ALTER AGGREGATE ................................................................................................................... 1012ALTER COLLATION .................................................................................................................... 1014ALTER CONVERSION .................................................................................................................. 1015ALTER DATABASE ..................................................................................................................... 1016ALTER DEFAULT PRIVILEGES .................................................................................................... 1018ALTER DOMAIN ......................................................................................................................... 1021ALTER EVENT TRIGGER ............................................................................................................. 1024ALTER EXTENSION .................................................................................................................... 1025ALTER FOREIGN DATA WRAPPER .............................................................................................. 1028ALTER FOREIGN TABLE ............................................................................................................. 1030ALTER FUNCTION ...................................................................................................................... 1034ALTER GROUP ............................................................................................................................ 1037ALTER INDEX ............................................................................................................................. 1038ALTER LANGUAGE ..................................................................................................................... 1040ALTER LARGE OBJECT ............................................................................................................... 1041ALTER MATERIALIZED VIEW ..................................................................................................... 1042ALTER OPERATOR ...................................................................................................................... 1044ALTER OPERATOR CLASS .......................................................................................................... 1045ALTER OPERATOR FAMILY ........................................................................................................ 1046ALTER POLICY ........................................................................................................................... 1049ALTER ROLE .............................................................................................................................. 1050ALTER RULE .............................................................................................................................. 1053ALTER SCHEMA ......................................................................................................................... 1054ALTER SEQUENCE ...................................................................................................................... 1055ALTER SERVER .......................................................................................................................... 1057ALTER SYSTEM .......................................................................................................................... 1058ALTER TABLE ............................................................................................................................ 1060ALTER TABLESPACE .................................................................................................................. 1070

    Documentation PostgreSQL 9.5.22

    x

  • ALTER TEXT SEARCH CONFIGURATION .................................................................................... 1071ALTER TEXT SEARCH DICTIONARY ........................................................................................... 1073ALTER TEXT SEARCH PARSER ................................................................................................... 1075ALTER TEXT SEARCH TEMPLATE .............................................................................................. 1076ALTER TRIGGER ......................................................................................................................... 1077ALTER TYPE ............................................................................................................................... 1078ALTER USER ............................................................................................................................... 1081ALTER USER MAPPING ............................................................................................................... 1082ALTER VIEW .............................................................................................................................. 1083ANALYZE ................................................................................................................................... 1085BEGIN ........................................................................................................................................ 1087CHECKPOINT .............................................................................................................................. 1089CLOSE ........................................................................................................................................ 1090CLUSTER .................................................................................................................................... 1091COMMENT .................................................................................................................................. 1093COMMIT ..................................................................................................................................... 1096COMMIT PREPARED ................................................................................................................... 1097COPY .......................................................................................................................................... 1098CREATE AGGREGATE ................................................................................................................. 1106CREATE CAST ............................................................................................................................ 1111CREATE COLLATION .................................................................................................................. 1115CREATE CONVERSION ............................................................................................................... 1117CREATE DATABASE ................................................................................................................... 1119CREATE DOMAIN ....................................................................................................................... 1122CREATE EVENT TRIGGER ........................................................................................................... 1125CREATE EXTENSION .................................................................................................................. 1127CREATE FOREIGN DATA WRAPPER ............................................................................................ 1129CREATE FOREIGN TABLE ........................................................................................................... 1131CREATE FUNCTION .................................................................................................................... 1134CREATE GROUP .......................................................................................................................... 1140CREATE INDEX ........................................................................................................................... 1141CREATE LANGUAGE .................................................................................................................. 1147CREATE MATERIALIZED VIEW ................................................................................................... 1150CREATE OPERATOR ................................................................................................................... 1151CREATE OPERATOR CLASS ........................................................................................................ 1153CREATE OPERATOR FAMILY ...................................................................................................... 1156CREATE POLICY ......................................................................................................................... 1157CREATE ROLE ............................................................................................................................ 1161CREATE RULE ............................................................................................................................ 1164CREATE SCHEMA ....................................................................................................................... 1167CREATE SEQUENCE ................................................................................................................... 1169CREATE SERVER ........................................................................................................................ 1172CREATE TABLE .......................................................................................................................... 1174CREATE TABLE AS ..................................................................................................................... 1186CREATE TABLESPACE ................................................................................................................ 1189CREATE TEXT SEARCH CONFIGURATION .................................................................................. 1191CREATE TEXT SEARCH DICTIONARY ......................................................................................... 1192CREATE TEXT SEARCH PARSER ................................................................................................. 1193CREATE TEXT SEARCH TEMPLATE ............................................................................................ 1194CREATE TRANSFORM ................................................................................................................ 1195CREATE TRIGGER ...................................................................................................................... 1197CREATE TYPE ............................................................................................................................. 1202CREATE USER ............................................................................................................................ 1209CREATE USER MAPPING ............................................................................................................. 1210CREATE VIEW ............................................................................................................................ 1211DEALLOCATE ............................................................................................................................. 1215DECLARE ................................................................................................................................... 1216DELETE ...................................................................................................................................... 1219DISCARD .................................................................................................................................... 1221DO .............................................................................................................................................. 1222DROP AGGREGATE ..................................................................................................................... 1223DROP CAST ................................................................................................................................ 1225DROP COLLATION ...................................................................................................................... 1226

    Documentation PostgreSQL 9.5.22

    xi

  • DROP CONVERSION ................................................................................................................... 1227DROP DATABASE ....................................................................................................................... 1228DROP DOMAIN ........................................................................................................................... 1229DROP EXTENSION ...................................................................................................................... 1230DROP EVENT TRIGGER ............................................................................................................... 1231DROP FOREIGN DATA WRAPPER ................................................................................................ 1232DROP FOREIGN TABLE ............................................................................................................... 1233DROP FUNCTION ........................................................................................................................ 1234DROP GROUP .............................................................................................................................. 1235DROP INDEX ............................................................................................................................... 1236DROP LANGUAGE ...................................................................................................................... 1237DROP MATERIALIZED VIEW ....................................................................................................... 1238DROP OPERATOR ....................................................................................................................... 1239DROP OPERATOR CLASS ............................................................................................................ 1240DROP OPERATOR FAMILY .......................................................................................................... 1241DROP OWNED ............................................................................................................................. 1242DROP POLICY ............................................................................................................................. 1243DROP ROLE ................................................................................................................................ 1244DROP RULE ................................................................................................................................ 1245DROP SCHEMA ........................................................................................................................... 1246DROP SEQUENCE ........................................................................................................................ 1247DROP SERVER ............................................................................................................................ 1248DROP TABLE .............................................................................................................................. 1249DROP TABLESPACE .................................................................................................................... 1250DROP TEXT SEARCH CONFIGURATION ...................................................................................... 1251DROP TEXT SEARCH DICTIONARY ............................................................................................. 1252DROP TEXT SEARCH PARSER ..................................................................................................... 1253DROP TEXT SEARCH TEMPLATE ................................................................................................ 1254DROP TRANSFORM ..................................................................................................................... 1255DROP TRIGGER ........................................................................................................................... 1256DROP TYPE ................................................................................................................................. 1257DROP USER ................................................................................................................................ 1258DROP USER MAPPING ................................................................................................................. 1259DROP VIEW ................................................................................................................................ 1260END ............................................................................................................................................ 1261EXECUTE ................................................................................................................................... 1262EXPLAIN .................................................................................................................................... 1263FETCH ........................................................................................................................................ 1267GRANT ....................................................................................................................................... 1270IMPORT FOREIGN SCHEMA ........................................................................................................ 1276INSERT ....................................................................................................................................... 1278LISTEN ....................................................................................................................................... 1284LOAD ......................................................................................................................................... 1285LOCK .......................................................................................................................................... 1286MOVE ......................................................................................................................................... 1288NOTIFY ...................................................................................................................................... 1290PREPARE .................................................................................................................................... 1292PREPARE TRANSACTION ............................................................................................................ 1294REASSIGN OWNED ..................................................................................................................... 1296REFRESH MATERIALIZED VIEW ................................................................................................. 1297REINDEX .................................................................................................................................... 1299RELEASE SAVEPOINT ................................................................................................................. 1301RESET .....................................