documentation postgresql 9.2 · documentation postgresql 9.2 ... préface xxi

2109
Documentation PostgreSQL 9.2.24 The PostgreSQL Global Development Group

Upload: others

Post on 21-Jul-2020

45 views

Category:

Documents


0 download

TRANSCRIPT

  • Documentation PostgreSQL 9.2.24

    The PostgreSQL Global Development Group

  • Documentation PostgreSQL 9.2.24The PostgreSQL Global Development GroupCopyright © 1996-2017 The PostgreSQL Global Development Group

    Legal Notice

    PostgreSQL™ is Copyright (c) 1996-2017 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 ........................................................................................................................................................ xxi1. Définition de PostgreSQL™ .................................................................................................................. xxi2. Bref historique de PostgreSQL™ ............................................................................................................ xxi3. Conventions ..................................................................................................................................... xxiii4. Pour plus d'informations ...................................................................................................................... xxiii5. Lignes de conduite pour les rapports de bogues ....................................................................................... xxiii

    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 ................................................................................................................................ 102.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 ..................................................................................................................... 36

    5. Définition des données ........................................................................................................................... 395.1. Notions fondamentales sur les tables ................................................................................................ 395.2. Valeurs par défaut ........................................................................................................................ 405.3. Contraintes ................................................................................................................................. 405.4. Colonnes système ......................................................................................................................... 465.5. Modification des tables .................................................................................................................. 475.6. Droits ......................................................................................................................................... 495.7. Schémas ..................................................................................................................................... 495.8. L'héritage ......................................................................................................................................5.9. Partitionnement ............................................................................................................................ 555.10. Données distantes ....................................................................................................................... 615.11. Autres objets de la base de données ................................................................................................ 615.12. Gestion des dépendances .............................................................................................................. 61

    6. Manipulation de données ........................................................................................................................ 636.1. Insérer des données ....................................................................................................................... 636.2. Actualiser les données ................................................................................................................... 646.3. Supprimer des données .................................................................................................................. 646.4. Renvoyer des données provenant de lignes modifiées .......................................................................... 65

    7. Requêtes ............................................................................................................................................. 667.1. Aperçu ....................................................................................................................................... 667.2. Expressions de table ..................................................................................................................... 667.3. Listes de sélection ........................................................................................................................ 747.4. Combiner des requêtes .................................................................................................................. 757.5. Tri des lignes ............................................................................................................................... 767.6. LIMIT et OFFSET ....................................................................................................................... 777.7. Listes VALUES ............................................................................................................................ 777.8. Requêtes WITH (Common Table Expressions) ................................................................................... 78

    iii

  • 8. Types de données ................................................................................................................................. 838.1. Types numériques ........................................................................................................................ 848.2. Types monétaires ......................................................................................................................... 878.3. Types caractère ............................................................................................................................ 888.4. Types de données binaires .............................................................................................................. 898.5. Types date/heure .......................................................................................................................... 918.6. Type booléen ............................................................................................................................... 998.7. Types énumération ..................................................................................................................... 1008.8. Types géométriques .................................................................................................................... 1018.9. Types adresses réseau ................................................................................................................. 1038.10. Type chaîne de bits ................................................................................................................... 1058.11. Types de recherche plein texte .................................................................................................... 1058.12. Type UUID ............................................................................................................................. 1078.13. Type XML .............................................................................................................................. 1088.14. Type JSON .............................................................................................................................. 1108.15. Tableaux ................................................................................................................................. 1108.16. Types composites ..................................................................................................................... 1178.17. Types intervalle de valeurs ......................................................................................................... 1218.18. Types identifiant d'objet ............................................................................................................. 1268.19. Pseudo-Types .......................................................................................................................... 127

    9. Fonctions et opérateurs ........................................................................................................................ 1299.1. Opérateurs logiques .................................................................................................................... 1299.2. Opérateurs de comparaison .......................................................................................................... 1299.3. Fonctions et opérateurs mathématiques ........................................................................................... 1319.4. Fonctions et opérateurs de chaînes ................................................................................................. 1339.5. Fonctions et opérateurs de chaînes binaires ...................................................................................... 1429.6. Fonctions et opérateurs sur les chaînes de bits .................................................................................. 1449.7. Correspondance de motif ............................................................................................................. 1459.8. Fonctions de formatage des types de données .................................................................................. 1579.9. Fonctions et opérateurs sur date/heure ............................................................................................ 1629.10. Fonctions de support enum ......................................................................................................... 1719.11. Fonctions et opérateurs géométriques ........................................................................................... 1729.12. Fonctions et opérateurs sur les adresses réseau ............................................................................... 1759.13. Fonctions et opérateurs de la recherche plein texte .......................................................................... 1779.14. Fonctions XML ........................................................................................................................ 1809.15. Fonctions JSON ....................................................................................................................... 1899.16. Fonctions de manipulation de séquences ....................................................................................... 1899.17. Expressions conditionnelles ........................................................................................................ 1919.18. Fonctions et opérateurs de tableaux .............................................................................................. 1939.19. Fonctions et opérateurs sur les données de type range ...................................................................... 1959.20. Fonctions d'agrégat ................................................................................................................... 1979.21. Fonctions Window .................................................................................................................... 2009.22. Expressions de sous-requêtes ...................................................................................................... 2019.23. Comparaisons de lignes et de tableaux .......................................................................................... 2049.24. Fonctions retournant des ensembles ............................................................................................. 2069.25. Fonctions d'informations système ................................................................................................ 2089.26. Fonctions d'administration système .............................................................................................. 2169.27. Fonctions trigger ...................................................................................................................... 227

    10. Conversion de types .......................................................................................................................... 22910.1. Aperçu ................................................................................................................................... 22910.2. Opérateurs ............................................................................................................................... 23010.3. Fonctions ................................................................................................................................ 23310.4. Stockage de valeurs ................................................................................................................... 23510.5. Constructions UNION, CASE et constructions relatives .................................................................... 236

    11. Index .............................................................................................................................................. 23811.1. Introduction ............................................................................................................................. 23811.2. Types d'index ........................................................................................................................... 23811.3. Index multicolonnes .................................................................................................................. 24011.4. Index et ORDER BY .................................................................................................................. 24111.5. Combiner des index multiples ..................................................................................................... 24111.6. Index d'unicité ......................................................................................................................... 24211.7. Index d'expressions ................................................................................................................... 24211.8. Index partiels ........................................................................................................................... 243

    Documentation PostgreSQL 9.2.24

    iv

  • 11.9. Classes et familles d'opérateurs ................................................................................................... 24511.10. Index et collationnements ......................................................................................................... 24611.11. Examiner l'utilisation des index ................................................................................................. 246

    12. Recherche plein texte ......................................................................................................................... 24812.1. Introduction ............................................................................................................................. 24812.2. Tables et index ......................................................................................................................... 25012.3. Contrôler la recherche plein texte ................................................................................................. 25212.4. Fonctionnalités supplémentaires .................................................................................................. 25712.5. Analyseurs .............................................................................................................................. 26112.6. Dictionnaires ........................................................................................................................... 26312.7. Exemple de configuration ........................................................................................................... 26912.8. Tester et déboguer la recherche plein texte ..................................................................................... 27012.9. Types d'index GiST et GIN ........................................................................................................ 27412.10. Support de psql ....................................................................................................................... 27512.11. Limites ................................................................................................................................. 27712.12. Migration à partir d'une recherche plein texte antérieure à 8.3 .......................................................... 277

    13. Contrôle d'accès simultané .................................................................................................................. 27913.1. Introduction ............................................................................................................................. 27913.2. Isolation des transactions ........................................................................................................... 27913.3. Verrouillage explicite ................................................................................................................ 28313.4. Vérification de cohérence des données au niveau de l'application ....................................................... 28713.5. Avertissements ......................................................................................................................... 28813.6. Verrouillage et index ................................................................................................................. 288

    14. Conseils sur les performances .............................................................................................................. 29014.1. Utiliser EXPLAIN ................................................................................................................... 29014.2. Statistiques utilisées par le planificateur ........................................................................................ 29814.3. Contrôler le planificateur avec des clauses JOIN explicites .............................................................. 29914.4. Remplir une base de données ...................................................................................................... 30014.5. Configuration avec une perte acceptée .......................................................................................... 303

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

    15.1. Version courte ......................................................................................................................... 30515.2. Prérequis ................................................................................................................................. 30515.3. Obtenir les sources .................................................................................................................... 30615.4. Procédure d'installation .............................................................................................................. 30715.5. Initialisation post-installation ...................................................................................................... 31515.6. Démarrer ................................................................................................................................ 31615.7. Et maintenant ? ........................................................................................................................ 31615.8. Plateformes supportées .............................................................................................................. 31715.9. Notes spécifiques à des plateformes ............................................................................................. 317

    16. Installation à partir du code source sur Windows™ .................................................................................. 32516.1. Construire avec Visual C++™ ou le Microsoft Windows SDK™ ....................................................... 32516.2. Construire libpq avec Visual C++™ ou Borland C++™ ................................................................... 329

    17. Configuration du serveur et mise en place .............................................................................................. 33017.1. Compte utilisateur PostgreSQL™ ................................................................................................ 33017.2. Créer un groupe de base de données ............................................................................................. 33017.3. Lancer le serveur de bases de données .......................................................................................... 33117.4. Gérer les ressources du noyau ..................................................................................................... 33417.5. Arrêter le serveur ...................................................................................................................... 34017.6. Mise à jour d'une instance PostgreSQL™ ...................................................................................... 34117.7. Empêcher l'usurpation de serveur ................................................................................................. 34317.8. Options de chiffrement .............................................................................................................. 34317.9. Connexions tcp/ip sécurisées avec ssl ........................................................................................... 34417.10. Connexions tcp/ip sécurisées avec des tunnels ssh tunnels ............................................................... 34617.11. Enregistrer le journal des événements sous Windows .................................................................... 346

    18. Configuration du serveur .................................................................................................................... 34818.1. Paramètres de configuration ........................................................................................................ 34818.2. Emplacement des fichiers ........................................................................................................... 34918.3. Connexions et authentification .................................................................................................... 35018.4. Consommation des ressources ..................................................................................................... 35418.5. Write Ahead Log ...................................................................................................................... 35718.6. Réplication .............................................................................................................................. 36118.7. Planification des requêtes ........................................................................................................... 363

    Documentation PostgreSQL 9.2.24

    v

  • 18.8. Remonter et tracer les erreurs ...................................................................................................... 36718.9. Statistiques d'exécution .............................................................................................................. 37418.10. Nettoyage (vacuum) automatique .............................................................................................. 37518.11. Valeurs par défaut des connexions client ..................................................................................... 37718.12. Gestion des verrous ................................................................................................................. 38118.13. Compatibilité de version et de plateforme .................................................................................... 38218.14. Gestion des erreurs .................................................................................................................. 38418.15. Options préconfigurées ............................................................................................................ 38418.16. Options personnalisées ............................................................................................................. 38518.17. Options pour les développeurs ................................................................................................... 38518.18. Options courtes ...................................................................................................................... 387

    19. Authentification du client ................................................................................................................... 38919.1. Le fichier pg_hba.conf ......................................................................................................... 38919.2. Correspondances d'utilisateurs .................................................................................................... 39419.3. Méthodes d'authentification ........................................................................................................ 39519.4. Problèmes d'authentification ....................................................................................................... 401

    20. Rôles de la base de données ................................................................................................................ 40220.1. Rôles de la base de données ........................................................................................................ 40220.2. Attributs des rôles ..................................................................................................................... 40220.3. Appartenance d'un rôle .............................................................................................................. 40320.4. Supprimer des rôles ................................................................................................................... 40520.5. Sécurité des fonctions et déclencheurs (triggers) ............................................................................. 405

    21. Administration des bases de données .................................................................................................... 40621.1. Aperçu ................................................................................................................................... 40621.2. Création d'une base de données ................................................................................................... 40621.3. Bases de données modèles .......................................................................................................... 40721.4. Configuration d'une base de données ............................................................................................ 40821.5. Détruire une base de données ...................................................................................................... 40821.6. Tablespaces ............................................................................................................................. 408

    22. Localisation ..................................................................................................................................... 41022.1. Support des locales ................................................................................................................... 41022.2. Support des collations ................................................................................................................ 41222.3. Support des jeux de caractères ..................................................................................................... 414

    23. Planifier les tâches de maintenance ....................................................................................................... 41923.1. Nettoyages réguliers .................................................................................................................. 41923.2. Ré-indexation régulière .............................................................................................................. 42423.3. Maintenance du fichier de traces .................................................................................................. 424

    24. Sauvegardes et restaurations ................................................................................................................ 42624.1. Sauvegarde SQL ...................................................................................................................... 42624.2. Sauvegarde de niveau système de fichiers ...................................................................................... 42824.3. Archivage continu et récupération d'un instantané (PITR) ................................................................. 429

    25. Haute disponibilité, répartition de charge et réplication ............................................................................. 43725.1. Comparaison de différentes solutions ........................................................................................... 43725.2. Serveurs de Standby par transfert de journaux ................................................................................ 43925.3. Bascule (Failover) .................................................................................................................... 44525.4. Méthode alternative pour le log shipping ....................................................................................... 44525.5. Hot Standby ............................................................................................................................ 447

    26. Configuration de la récupération .......................................................................................................... 45426.1. Paramètres de récupération de l'archive ......................................................................................... 45426.2. Paramètres de cible de récupération .............................................................................................. 45426.3. Paramètres de serveur de Standby ................................................................................................ 455

    27. Surveiller l'activité de la base de données ............................................................................................... 45727.1. Outils Unix standard ................................................................................................................. 45727.2. Le récupérateur de statistiques ..................................................................................................... 45827.3. Visualiser les verrous ................................................................................................................ 46827.4. Traces dynamiques ................................................................................................................... 469

    28. Surveiller l'utilisation des disques ......................................................................................................... 47728.1. Déterminer l'utilisation des disques .............................................................................................. 47728.2. Panne pour disque saturé ............................................................................................................ 478

    29. Fiabilité et journaux de transaction ....................................................................................................... 47929.1. Fiabilité .................................................................................................................................. 47929.2. Write-Ahead Logging (WAL) ..................................................................................................... 48029.3. Validation asynchrone (Asynchronous Commit) ............................................................................. 480

    Documentation PostgreSQL 9.2.24

    vi

  • 29.4. Configuration des journaux de transaction ..................................................................................... 48129.5. Vue interne des journaux de transaction ........................................................................................ 483

    30. Tests de régression ............................................................................................................................ 48530.1. Lancer les tests ......................................................................................................................... 48530.2. Évaluation des tests ................................................................................................................... 48730.3. Fichiers de comparaison de variants ............................................................................................. 48930.4. Examen de la couverture du test .................................................................................................. 490

    IV. Interfaces client ...................................................................................................................................... 49131. libpq - Bibliothèque C ........................................................................................................................ 492

    31.1. Fonctions de contrôle de connexion à la base de données .................................................................. 49231.2. Fonctions de statut de connexion ................................................................................................. 50031.3. Fonctions de commandes d'exécution ........................................................................................... 50331.4. Traitement des commandes asynchrones ....................................................................................... 51431.5. Récupérer le résultats des requêtes ligne par ligne ........................................................................... 51731.6. Annuler des requêtes en cours d'exécution ..................................................................................... 51831.7. Interface à chemin rapide ........................................................................................................... 51931.8. Notification asynchrone ............................................................................................................. 52031.9. Fonctions associées avec la commande COPY ............................................................................... 52031.10. Fonctions de contrôle ............................................................................................................... 52431.11. Fonctions diverses ................................................................................................................... 52431.12. Traitement des messages .......................................................................................................... 52731.13. Système d'événements ............................................................................................................. 52731.14. Variables d'environnement ........................................................................................................ 53331.15. Fichier de mots de passe ........................................................................................................... 53431.16. Fichier des connexions de service ............................................................................................... 53431.17. Recherches LDAP des paramètres de connexion ........................................................................... 53531.18. Support de SSL ...................................................................................................................... 53531.19. Comportement des programmes threadés ..................................................................................... 53831.20. Construire des applications avec libpq ......................................................................................... 53931.21. Exemples de programmes ......................................................................................................... 540

    32. Objets larges .................................................................................................................................... 54832.1. Introduction ............................................................................................................................. 54832.2. Fonctionnalités d'implémentation ................................................................................................. 54832.3. Interfaces client ........................................................................................................................ 54832.4. Fonctions du côté serveur ........................................................................................................... 55032.5. Programme d'exemple ............................................................................................................... 551

    33. ECPG SQL embarqué en C ................................................................................................................. 55633.1. Le Concept .............................................................................................................................. 55633.2. Gérer les Connexions à la Base de Données ................................................................................... 55633.3. Exécuter des Commandes SQL ................................................................................................... 55833.4. Utiliser des Variables Hôtes ........................................................................................................ 56033.5. SQL Dynamique ...................................................................................................................... 57233.6. Librairie pgtypes ...................................................................................................................... 57333.7. Utiliser les Zones de Descripteur ................................................................................................. 58433.8. Gestion des Erreurs ................................................................................................................... 59433.9. Directives de Préprocesseur ........................................................................................................ 60033.10. Traiter des Programmes en SQL Embarqué .................................................................................. 60133.11. Fonctions de la Librairie ........................................................................................................... 60233.12. Large Objects ......................................................................................................................... 60233.13. Applications C++ .................................................................................................................... 60433.14. Commandes SQL Embarquées .................................................................................................. 60733.15. Mode de Compatibilité Informix™ ............................................................................................. 62733.16. Fonctionnement Interne ............................................................................................................ 638

    34. Schéma d'information ........................................................................................................................ 64134.1. Le schéma ............................................................................................................................... 64134.2. Types de données ..................................................................................................................... 64134.3. information_schema_catalog_name ............................................................................... 64234.4. administrable_role_authorizations ........................................................................... 64234.5. applicable_roles ............................................................................................................. 64234.6. attributes ......................................................................................................................... 64234.7. character_sets ................................................................................................................. 64534.8. check_constraint_routine_usage ................................................................................. 64634.9. check_constraints ........................................................................................................... 646

    Documentation PostgreSQL 9.2.24

    vii

  • 34.10. collations ........................................................................................................................ 64634.11. collation_character_set_applicability .................................................................. 64734.12. column_domain_usage ...................................................................................................... 64734.13. column_options ................................................................................................................ 64834.14. column_privileges .......................................................................................................... 64834.15. column_udt_usage ............................................................................................................ 64834.16. columns .............................................................................................................................. 64934.17. constraint_column_usage .............................................................................................. 65234.18. constraint_table_usage ................................................................................................ 65234.19. data_type_privileges .................................................................................................... 65234.20. domain_constraints ........................................................................................................ 65334.21. domain_udt_usage ............................................................................................................ 65334.22. domains .............................................................................................................................. 65434.23. element_types .................................................................................................................. 65534.24. enabled_roles .................................................................................................................. 65734.25. foreign_data_wrapper_options .................................................................................... 65734.26. foreign_data_wrappers .................................................................................................. 65834.27. foreign_server_options ................................................................................................ 65834.28. foreign_servers .............................................................................................................. 65834.29. foreign_table_options .................................................................................................. 65934.30. foreign_tables ................................................................................................................ 65934.31. key_column_usage ............................................................................................................ 66034.32. parameters ........................................................................................................................ 66034.33. referential_constraints .............................................................................................. 66134.34. role_column_grants ........................................................................................................ 66234.35. role_routine_grants ...................................................................................................... 66234.36. role_table_grants .......................................................................................................... 66334.37. role_udt_grants .............................................................................................................. 66334.38. role_usage_grants .......................................................................................................... 66434.39. routine_privileges ........................................................................................................ 66434.40. routines ............................................................................................................................ 66534.41. schemata ............................................................................................................................ 66834.42. sequences .......................................................................................................................... 66934.43. sql_features .................................................................................................................... 66934.44. sql_implementation_info .............................................................................................. 67034.45. sql_languages .................................................................................................................. 67034.46. sql_packages .................................................................................................................... 67134.47. sql_parts .......................................................................................................................... 67134.48. sql_sizing ........................................................................................................................ 67134.49. sql_sizing_profiles ...................................................................................................... 67234.50. table_constraints .......................................................................................................... 67234.51. table_privileges ............................................................................................................ 67334.52. tables ................................................................................................................................ 67334.53. triggered_update_columns ............................................................................................ 67434.54. triggers ............................................................................................................................ 67434.55. udt_privileges ................................................................................................................ 67534.56. usage_privileges ............................................................................................................ 67634.57. user_defined_types ........................................................................................................ 67634.58. user_mapping_options .................................................................................................... 67834.59. user_mappings .................................................................................................................. 67834.60. view_column_usage .......................................................................................................... 67834.61. view_routine_usage ........................................................................................................ 67934.62. view_table_usage ............................................................................................................ 67934.63. views .................................................................................................................................. 680

    V. Programmation serveur ............................................................................................................................. 68135. Étendre SQL .................................................................................................................................... 682

    35.1. L'extensibilité .......................................................................................................................... 68235.2. Le système des types de PostgreSQL™ ......................................................................................... 68235.3. Fonctions utilisateur .................................................................................................................. 68335.4. Fonctions en langage de requêtes (SQL) ........................................................................................ 68435.5. Surcharge des fonctions ............................................................................................................. 69435.6. Catégories de volatilité des fonctions ............................................................................................ 69435.7. Fonctions en langage de procédures ............................................................................................. 696

    Documentation PostgreSQL 9.2.24

    viii

  • 35.8. Fonctions internes ..................................................................................................................... 69635.9. Fonctions en langage C .............................................................................................................. 69635.10. Agrégats utilisateur ................................................................................................................. 71435.11. Types utilisateur ..................................................................................................................... 71635.12. Opérateurs définis par l'utilisateur .............................................................................................. 71935.13. Informations sur l'optimisation d'un opérateur .............................................................................. 71935.14. Interfacer des extensions d'index ................................................................................................ 72235.15. Empaqueter des objets dans une extension ................................................................................... 73235.16. Outils de construction d'extension .............................................................................................. 737

    36. Déclencheurs (triggers) ...................................................................................................................... 73936.1. Aperçu du comportement des déclencheurs .................................................................................... 73936.2. Visibilité des modifications des données ....................................................................................... 74036.3. Écrire des fonctions déclencheurs en C ......................................................................................... 74136.4. Un exemple complet de trigger .................................................................................................... 743

    37. Système de règles .............................................................................................................................. 74637.1. Arbre de requêtes ..................................................................................................................... 74637.2. Vues et système de règles ........................................................................................................... 74737.3. Règles sur insert, update et delete .............................................................................................. 75337.4. Règles et droits ........................................................................................................................ 76137.5. Règles et statut de commande ..................................................................................................... 76237.6. Règles contre déclencheurs ......................................................................................................... 763

    38. Langages de procédures ..................................................................................................................... 76538.1. Installation des langages de procédures ......................................................................................... 765

    39. PL/pgSQL - Langage de procédures SQL .............................................................................................. 76739.1. Aperçu ................................................................................................................................... 76739.2. Structure de PL/pgSQL .............................................................................................................. 76839.3. Déclarations ............................................................................................................................ 76939.4. Expressions ............................................................................................................................. 77439.5. Instructions de base ................................................................................................................... 77439.6. Structures de contrôle ................................................................................................................ 77939.7. Curseurs ................................................................................................................................. 78939.8. Erreurs et messages ................................................................................................................... 79439.9. Procédures trigger ..................................................................................................................... 79539.10. Les dessous de PL/pgSQL ........................................................................................................ 80139.11. Astuces pour développer en PL/pgSQL ....................................................................................... 80339.12. Portage d'Oracle™ PL/SQL ...................................................................................................... 805

    40. PL/Tcl - Langage de procédures Tcl ..................................................................................................... 81340.1. Aperçu ................................................................................................................................... 81340.2. Fonctions et arguments PL/Tcl .................................................................................................... 81340.3. Valeurs des données avec PL/Tcl ................................................................................................. 81440.4. Données globales avec PL/Tcl ..................................................................................................... 81440.5. Accès à la base de données depuis PL/Tcl ..................................................................................... 81540.6. Procédures pour déclencheurs en PL/Tcl ....................................................................................... 81640.7. Les modules et la commande unknown ....................................................................................... 81840.8. Noms de procédure Tcl .............................................................................................................. 818

    41. PL/Perl - Langage de procédures Perl .................................................................................................... 81941.1. Fonctions et arguments PL/Perl ................................................................................................... 81941.2. Valeurs en PL/Perl .................................................................................................................... 82241.3. Fonction incluses ...................................................................................................................... 82241.4. Valeurs globales dans PL/Perl ..................................................................................................... 82641.5. Niveaux de confiance de PL/Perl ................................................................................................. 82641.6. Déclencheurs PL/Perl ................................................................................................................ 82741.7. PL/Perl sous le capot ................................................................................................................. 828

    42. PL/Python - Langage de procédures Python ........................................................................................... 83042.1. Python 2 et Python 3 ................................................................................................................. 83042.2. Fonctions PL/Python ................................................................................................................. 83142.3. Valeur des données avec PL/Python ............................................................................................. 83242.4. Sharing Data ............................................................................................................................ 83642.5. Blocs de code anonymes ............................................................................................................ 83642.6. Fonctions de déclencheurs .......................................................................................................... 83642.7. Accès à la base de données ......................................................................................................... 83742.8. Sous-transactions explicites ........................................................................................................ 83942.9. Fonctions outils ........................................................................................................................ 841

    Documentation PostgreSQL 9.2.24

    ix

  • 42.10. Variables d'environnement ........................................................................................................ 84143. Interface de programmation serveur ...................................................................................................... 843

    43.1. Fonctions d'interface ................................................................................................................. 84343.2. Fonctions de support d'interface .................................................................................................. 87243.3. Gestion de la mémoire ............................................................................................................... 88043.4. Visibilité des modifications de données ......................................................................................... 88943.5. Exemples ................................................................................................................................ 889

    VI. Référence .............................................................................................................................................. 892I. Commandes SQL ................................................................................................................................ 893

    ABORT ......................................................................................................................................... 894ALTER AGGREGATE ..................................................................................................................... 895ALTER COLLATION ...................................................................................................................... 896ALTER CONVERSION .................................................................................................................... 897ALTER DATABASE ....................................................................................................................... 898ALTER DEFAULT PRIVILEGES ...................................................................................................... 900ALTER DOMAIN ........................................................................................................................... 902ALTER EXTENSION ...................................................................................................................... 905ALTER FOREIGN DATA WRAPPER ................................................................................................ 908ALTER FOREIGN TABLE ............................................................................................................... 910ALTER FUNCTION ........................................................................................................................ 913ALTER GROUP .............................................................................................................................. 915ALTER INDEX ............................................................................................................................... 916ALTER LANGUAGE ....................................................................................................................... 918ALTER LARGE OBJECT ................................................................................................................. 919ALTER OPERATOR ........................................................................................................................ 920ALTER OPERATOR CLASS ............................................................................................................ 921ALTER OPERATOR FAMILY .......................................................................................................... 922ALTER ROLE ................................................................................................................................ 925ALTER SCHEMA ........................................................................................................................... 928ALTER SEQUENCE ........................................................................................................................ 929ALTER SERVER ............................................................................................................................ 931ALTER TABLE .............................................................................................................................. 932ALTER TABLESPACE .................................................................................................................... 940ALTER TEXT SEARCH CONFIGURATION ...................................................................................... 941ALTER TEXT SEARCH DICTIONARY ............................................................................................. 943ALTER TEXT SEARCH PARSER ..................................................................................................... 945ALTER TEXT SEARCH TEMPLATE ................................................................................................ 946ALTER TRIGGER ........................................................................................................................... 947ALTER TYPE ................................................................................................................................. 948ALTER USER ................................................................................................................................. 951ALTER USER MAPPING ................................................................................................................. 952ALTER VIEW ................................................................................................................................ 953ANALYZE ..................................................................................................................................... 955BEGIN .......................................................................................................................................... 957CHECKPOINT ................................................................................................................................ 959CLOSE .......................................................................................................................................... 960CLUSTER ...................................................................................................................................... 961COMMENT .................................................................................................................................... 963COMMIT ....................................................................................................................................... 966COMMIT PREPARED ..................................................................................................................... 967COPY ............................................................................................................................................ 968CREATE AGGREGATE ................................................................................................................... 975CREATE CAST .............................................................................................................................. 978CREATE COLLATION .................................................................................................................... 982CREATE CONVERSION ................................................................................................................. 984CREATE DATABASE ..................................................................................................................... 986CREATE DOMAIN ......................................................................................................................... 988CREATE EXTENSION .................................................................................................................... 990CREATE FOREIGN DATA WRAPPER .............................................................................................. 992CREATE FOREIGN TABLE ............................................................................................................. 994CREATE FUNCTION ...................................................................................................................... 996CREATE GROUP .......................................................................................................................... 1002CREATE INDEX ........................................................................................................................... 1003

    Documentation PostgreSQL 9.2.24

    x

  • CREATE LANGUAGE .................................................................................................................. 1008CREATE OPERATOR ................................................................................................................... 1011CREATE OPERATOR CLASS ........................................................................................................ 1013CREATE OPERATOR FAMILY ...................................................................................................... 1016CREATE ROLE ............................................................................................................................ 1017CREATE RULE ............................................................................................................................ 1020CREATE SCHEMA ....................................................................................................................... 1022CREATE SEQUENCE ................................................................................................................... 1024CREATE SERVER ........................................................................................................................ 1027CREATE TABLE .......................................................................................................................... 1029CREATE TABLE AS ..................................................................................................................... 1040CREATE TABLESPACE ................................................................................................................ 1042CREATE TEXT SEARCH CONFIGURATION .................................................................................. 1043CREATE TEXT SEARCH DICTIONARY ......................................................................................... 1044CREATE TEXT SEARCH PARSER ................................................................................................. 1045CREATE TEXT SEARCH TEMPLATE ............................................................................................ 1046CREATE TRIGGER ...................................................................................................................... 1047CREATE TYPE ............................................................................................................................. 1051CREATE USER ............................................................................................................................ 1058CREATE USER MAPPING ............................................................................................................. 1059CREATE VIEW ............................................................................................................................ 1060DEALLOCATE ............................................................................................................................. 1062DECLARE ................................................................................................................................... 1063DELETE ...................................................................................................................................... 1066DISCARD .................................................................................................................................... 1068DO .............................................................................................................................................. 1069DROP AGGREGATE ..................................................................................................................... 1070DROP CAST ................................................................................................................................ 1071DROP COLLATION ...................................................................................................................... 1072DROP CONVERSION ................................................................................................................... 1073DROP DATABASE ....................................................................................................................... 1074DROP DOMAIN ........................................................................................................................... 1075DROP EXTENSION ...................................................................................................................... 1076DROP FOREIGN DATA WRAPPER ................................................................................................ 1077DROP FOREIGN TABLE ............................................................................................................... 1078DROP FUNCTION ........................................................................................................................ 1079DROP GROUP .............................................................................................................................. 1080DROP INDEX ............................................................................................................................... 1081DROP LANGUAGE ...................................................................................................................... 1082DROP OPERATOR ....................................................................................................................... 1083DROP OPERATOR CLASS ............................................................................................................ 1084DROP OPERATOR FAMILY .......................................................................................................... 1085DROP OWNED ............................................................................................................................. 1086DROP ROLE ................................................................................................................................ 1087DROP RULE ................................................................................................................................ 1088DROP SCHEMA ........................................................................................................................... 1089DROP SEQUENCE ........................................................................................................................ 1090DROP SERVER ............................................................................................................................ 1091DROP TABLE .............................................................................................................................. 1092DROP TABLESPACE .................................................................................................................... 1093DROP TEXT SEARCH CONFIGURATION ...................................................................................... 1094DROP TEXT SEARCH DICTIONARY ............................................................................................. 1095DROP TEXT SEARCH PARSER ..................................................................................................... 1096DROP TEXT SEARCH TEMPLATE ................................................................................................ 1097DROP TRIGGER ........................................................................................................................... 1098DROP TYPE ................................................................................................................................. 1099DROP USER ................................................................................................................................ 1100DROP USER MAPPING ................................................................................................................. 1101DROP VIEW ................................................................................................................................ 1102END ............................................................................................................................................ 1103EXECUTE ................................................................................................................................... 1104EXPLAIN .................................................................................................................................... 1105FETCH ........................................................................................................................................ 1109

    Documentation PostgreSQL 9.2.24

    xi

  • GRANT ....................................................................................................................................... 1112INSERT ....................................................................................................................................... 1118LISTEN ....................................................................................................................................... 1121LOAD ......................................................................................................................................... 1122LOCK .......................................................................................................................................... 1123MOVE ......................................................................................................................................... 1125NOTIFY ...................................................................................................................................... 1127PREPARE .................................................................................................................................... 1129PREPARE TRANSACTION ............................................................................................................ 1131REASSIGN OWNED ..................................................................................................................... 1133REINDEX .................................................................................................................................... 1134RELEASE SAVEPOINT ................................................................................................................. 1136RESET ........................................................................................................................................ 1137REVOKE ..................................................................................................................................... 1138ROLLBACK ................................................................................................................................. 1141ROLLBACK PREPARED ............................................................................................................... 1142ROLLBACK TO SAVEPOINT ........................................................................................................ 1143SAVEPOINT ................................................................................................................................ 1145SECURITY LABEL ....................................................................................................................... 1146SELECT ...................................................................................................................................... 1148SELECT INTO .............................................................................................................................. 1162SET ............................................................................................................................................. 1164SET CONSTRAINTS ..................................................................................................................... 1166SET ROLE ................................................................................................................................... 1167SET SESSION AUTHORIZATION .................................................................................................. 1169SET TRANSACTION .................................................................................................................... 1170SHOW ......................................................................................................................................... 1172START TRANSACTION ................................................................................................................ 1174TRUNCATE ................................................................................................................................. 1175UNLISTEN .................................................................................................................................. 1177UPDATE ...................................................................................................................................... 1178VACUUM .................................................................................................................................... 1181VALUES ...................................................................................................................................... 1183

    II. Applications client de PostgreSQL ...................................................................................................... 1185clusterdb ...................................................................................................................................... 1186createdb ....................................................................................................................................... 1188createlang ..................................................................................................................................... 1190createuser ..................................................................................................................................... 1192dropdb ......................................................................................................................................... 1195droplang ....................................................................................................................................... 1197dropuser ....................................................................................................................................... 1199ecpg ............................................................................................................................................ 1201pg_basebackup .............................................................................................................................. 1203pg_config ..................................................................................................................................... 1207pg_dump ...................................................................................................................................... 1209pg_receivexlog .............................................................................................................................. 1216pg_dumpall ................................................................................................................................... 1218pg_restore ..................................................................................................................................... 1222psql ............................................................................................................................................. 1228reindexdb ..................................................................................................................................... 1251vacuumdb .................................