+ All Categories
Home > Documents > Documentation PostgreSQL 9.0 · Documentation PostgreSQL 9.0 ... Préface xx

Documentation PostgreSQL 9.0 · Documentation PostgreSQL 9.0 ... Préface xx

Date post: 16-May-2020
Category:
Upload: others
View: 92 times
Download: 0 times
Share this document with a friend
1782
Documentation PostgreSQL 9.0.18 The PostgreSQL Global Development Group
Transcript
  • Documentation PostgreSQL 9.0.18

    The PostgreSQL Global Development Group

  • Documentation PostgreSQL 9.0.18The PostgreSQL Global Development GroupCopyright © 1996-2014 The PostgreSQL Global Development Group

    Legal Notice

    PostgreSQL™ is Copyright (c) 1996-2014 by the PostgreSQL Global Development Group and is distributed under the terms of the license of the University of Ca-lifornia below.

    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 ......................................................................................................................................................... xx1. Définition de PostgreSQL™ ................................................................................................................... xx2. Bref historique de PostgreSQL™ ............................................................................................................. xx3. Conventions ...................................................................................................................................... xxii4. Pour plus d'informations ....................................................................................................................... xxii5. Lignes de conduite pour les rapports de bogues ........................................................................................ xxii

    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 ..................................................................................................................... 35

    5. Définition des données ........................................................................................................................... 375.1. Notions fondamentales sur les tables ................................................................................................ 375.2. Valeurs par défaut ........................................................................................................................ 385.3. Contraintes ................................................................................................................................. 385.4. Colonnes système ......................................................................................................................... 445.5. Modification des tables .................................................................................................................. 455.6. Droits ......................................................................................................................................... 475.7. Schémas ..................................................................................................................................... 475.8. L'héritage ......................................................................................................................................5.9. Partitionnement ............................................................................................................................ 535.10. Autres objets de la base de données ................................................................................................ 595.11. Gestion des dépendances .............................................................................................................. 59

    6. Manipulation de données ........................................................................................................................ 616.1. Insérer des données ....................................................................................................................... 616.2. Actualiser les données ................................................................................................................... 626.3. Supprimer des données .................................................................................................................. 62

    7. Requêtes ............................................................................................................................................. 647.1. Aperçu ....................................................................................................................................... 647.2. Expressions de table ..................................................................................................................... 647.3. Listes de sélection ........................................................................................................................ 727.4. Combiner des requêtes .................................................................................................................. 737.5. Tri des lignes ............................................................................................................................... 737.6. LIMIT et OFFSET ....................................................................................................................... 747.7. Listes VALUES ............................................................................................................................ 757.8. Requêtes WITH (Common Table Expressions) ................................................................................... 75

    8. Types de données ................................................................................................................................. 798.1. Types numériques ........................................................................................................................ 80

    iii

  • 8.2. Types monétaires ......................................................................................................................... 838.3. Types caractère ............................................................................................................................ 838.4. Types de données binaires .............................................................................................................. 858.5. Types date/heure .......................................................................................................................... 878.6. Type booléen ............................................................................................................................... 958.7. Types énumération ....................................................................................................................... 968.8. Types géométriques ...................................................................................................................... 978.9. Types adresses réseau ................................................................................................................... 998.10. Type chaîne de bits ................................................................................................................... 1008.11. Types de recherche plein texte .................................................................................................... 1018.12. Type UUID ............................................................................................................................. 1038.13. Type XML .............................................................................................................................. 1038.14. Tableaux ................................................................................................................................. 1058.15. Types composites ..................................................................................................................... 1118.16. Types identifiant d'objet ............................................................................................................. 1148.17. Pseudo-Types .......................................................................................................................... 115

    9. Fonctions et opérateurs ........................................................................................................................ 1179.1. Opérateurs logiques .................................................................................................................... 1179.2. Opérateurs de comparaison .......................................................................................................... 1179.3. Fonctions et opérateurs mathématiques ........................................................................................... 1199.4. Fonctions et opérateurs de chaînes ................................................................................................. 1219.5. Fonctions et opérateurs de chaînes binaires ...................................................................................... 1299.6. Fonctions et opérateurs sur les chaînes de bits .................................................................................. 1319.7. Correspondance de motif ............................................................................................................. 1319.8. Fonctions de formatage des types de données .................................................................................. 1439.9. Fonctions et opérateurs sur date/heure ............................................................................................ 1489.10. Fonctions de support enum ......................................................................................................... 1579.11. Fonctions et opérateurs géométriques ........................................................................................... 1589.12. Fonctions et opérateurs sur les adresses réseau ............................................................................... 1619.13. Fonctions et opérateurs de la recherche plein texte .......................................................................... 1639.14. Fonctions XML ........................................................................................................................ 1669.15. Fonctions de manipulation de séquences ....................................................................................... 1739.16. Expressions conditionnelles ........................................................................................................ 1759.17. Fonctions et opérateurs de tableaux .............................................................................................. 1779.18. Fonctions d'agrégat ................................................................................................................... 1789.19. Fonctions Window .................................................................................................................... 1829.20. Expressions de sous-requêtes ...................................................................................................... 1839.21. Comparaisons de lignes et de tableaux .......................................................................................... 1869.22. Fonctions retournant des ensembles ............................................................................................. 1889.23. Fonctions d'informations système ................................................................................................ 1909.24. Fonctions d'administration système .............................................................................................. 1979.25. Fonctions trigger ...................................................................................................................... 204

    10. Conversion de types .......................................................................................................................... 20610.1. Aperçu ................................................................................................................................... 20610.2. Opérateurs ............................................................................................................................... 20710.3. Fonctions ................................................................................................................................ 20910.4. Stockage de valeurs ................................................................................................................... 21110.5. Constructions UNION, CASE et constructions relatives .................................................................... 212

    11. Index .............................................................................................................................................. 21411.1. Introduction ............................................................................................................................. 21411.2. Types d'index ........................................................................................................................... 21411.3. Index multicolonnes .................................................................................................................. 21611.4. Index et ORDER BY .................................................................................................................. 21611.5. Combiner des index multiples ..................................................................................................... 21711.6. Index d'unicité ......................................................................................................................... 21711.7. Index d'expressions ................................................................................................................... 21811.8. Index partiels ........................................................................................................................... 21811.9. Classes et familles d'opérateurs ................................................................................................... 22011.10. Examiner l'utilisation des index ................................................................................................. 221

    12. Recherche plein texte ......................................................................................................................... 22312.1. Introduction ............................................................................................................................. 22312.2. Tables et index ......................................................................................................................... 22512.3. Contrôler la recherche plein texte ................................................................................................. 227

    Documentation PostgreSQL 9.0.18

    iv

  • 12.4. Fonctionnalités supplémentaires .................................................................................................. 23212.5. Analyseurs .............................................................................................................................. 23612.6. Dictionnaires ........................................................................................................................... 23812.7. Exemple de configuration ........................................................................................................... 24412.8. Tester et déboguer la recherche plein texte ..................................................................................... 24512.9. Types d'index GiST et GIN ........................................................................................................ 24912.10. Support de psql ....................................................................................................................... 25012.11. Limites ................................................................................................................................. 25212.12. Migration à partir d'une recherche plein texte antérieure à 8.3 .......................................................... 252

    13. Contrôle d'accès simultané .................................................................................................................. 25413.1. Introduction ............................................................................................................................. 25413.2. Isolation des transactions ........................................................................................................... 25413.3. Verrouillage explicite ................................................................................................................ 25713.4. Vérification de cohérence des données au niveau de l'application ....................................................... 26013.5. Verrouillage et index ................................................................................................................. 261

    14. Conseils sur les performances .............................................................................................................. 26214.1. Utiliser EXPLAIN ................................................................................................................... 26214.2. Statistiques utilisées par le planificateur ........................................................................................ 26614.3. Contrôler le planificateur avec des clauses JOIN explicites .............................................................. 26714.4. Remplir une base de données ...................................................................................................... 26814.5. Configuration avec une perte acceptée .......................................................................................... 271

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

    15.1. Version courte ......................................................................................................................... 27315.2. Prérequis ................................................................................................................................. 27315.3. Obtenir les sources .................................................................................................................... 27415.4. Mise à jour .............................................................................................................................. 27515.5. Procédure d'installation .............................................................................................................. 27615.6. Initialisation post-installation ...................................................................................................... 28315.7. Démarrer ................................................................................................................................ 28415.8. Et maintenant ? ........................................................................................................................ 28515.9. Plateformes supportées .............................................................................................................. 28515.10. Notes spécifiques à des plateformes ............................................................................................ 286

    16. Installation à partir du code source sur Windows™ .................................................................................. 29416.1. Construire avec Visual C++™ ou le Platform SDK™ ...................................................................... 29416.2. Construire libpq avec Visual C++™ ou Borland C++™ ................................................................... 297

    17. Configuration du serveur et mise en place .............................................................................................. 29917.1. Compte utilisateur PostgreSQL™ ................................................................................................ 29917.2. Créer un groupe de base de données ............................................................................................. 29917.3. Lancer le serveur de bases de données .......................................................................................... 30017.4. Gérer les ressources du noyau ..................................................................................................... 30217.5. Arrêter le serveur ...................................................................................................................... 30817.6. Empêcher l'usurpation de serveur ................................................................................................. 30917.7. Options de chiffrement .............................................................................................................. 30917.8. Connexions tcp/ip sécurisées avec ssl ........................................................................................... 31017.9. Connexions tcp/ip sécurisées avec des tunnels ssh tunnels ................................................................ 312

    18. Configuration du serveur .................................................................................................................... 31318.1. Paramètres de configuration ........................................................................................................ 31318.2. Emplacement des fichiers ........................................................................................................... 31418.3. Connexions et authentification .................................................................................................... 31518.4. Consommation des ressources ..................................................................................................... 31818.5. Write Ahead Log ...................................................................................................................... 32118.6. Planification des requêtes ........................................................................................................... 32618.7. Remonter et tracer les erreurs ...................................................................................................... 33018.8. Statistiques d'exécution .............................................................................................................. 33618.9. Nettoyage (vacuum) automatique ................................................................................................ 33718.10. Valeurs par défaut des connexions client ..................................................................................... 33918.11. Gestion des verrous ................................................................................................................. 34318.12. Compatibilité de version et de plateforme .................................................................................... 34318.13. Options préconfigurées ............................................................................................................ 34518.14. Options personnalisées ............................................................................................................. 34618.15. Options pour les développeurs ................................................................................................... 34618.16. Options courtes ...................................................................................................................... 348

    Documentation PostgreSQL 9.0.18

    v

  • 19. Authentification du client ................................................................................................................... 35019.1. Le fichier pg_hba.conf ......................................................................................................... 35019.2. Correspondances d'utilisateurs .................................................................................................... 35419.3. Méthodes d'authentification ........................................................................................................ 35519.4. Problèmes d'authentification ....................................................................................................... 360

    20. Rôles et droits de la base de données ..................................................................................................... 36220.1. Rôles de la base de données ........................................................................................................ 36220.2. Attributs des rôles ..................................................................................................................... 36220.3. Droits ..................................................................................................................................... 36320.4. Appartenance d'un rôle .............................................................................................................. 36420.5. Sécurité des fonctions et déclencheurs (triggers) ............................................................................. 365

    21. Administration des bases de données .................................................................................................... 36621.1. Aperçu ................................................................................................................................... 36621.2. Création d'une base de données ................................................................................................... 36621.3. Bases de données modèles .......................................................................................................... 36721.4. Configuration d'une base de données ............................................................................................ 36821.5. Détruire une base de données ...................................................................................................... 36821.6. Tablespaces ............................................................................................................................. 368

    22. Localisation ..................................................................................................................................... 37022.1. Support des locales ................................................................................................................... 37022.2. Support des jeux de caractères ..................................................................................................... 372

    23. Planifier les tâches de maintenance ....................................................................................................... 37723.1. Nettoyages réguliers .................................................................................................................. 37723.2. Ré-indexation régulière .............................................................................................................. 38223.3. Maintenance du fichier de traces .................................................................................................. 382

    24. Sauvegardes et restaurations ................................................................................................................ 38424.1. Sauvegarde SQL ...................................................................................................................... 38424.2. Sauvegarde de niveau système de fichiers ...................................................................................... 38624.3. Archivage continu et récupération d'un instantané (PITR) ................................................................. 38724.4. Migration entre versions ............................................................................................................ 394

    25. Haute disponibilité, répartition de charge et réplication ............................................................................. 39725.1. Comparaison de différentes solutions ........................................................................................... 39725.2. Serveurs de Standby par transfert de journaux ................................................................................ 40025.3. Failover (bascule) ..................................................................................................................... 40325.4. Méthode alternative pour le log shipping ....................................................................................... 40325.5. Hot Standby ............................................................................................................................ 405

    26. Configuration de la récupération .......................................................................................................... 41126.1. Paramètres de récupération de l'archive ......................................................................................... 41126.2. Paramètres de cible de récupération .............................................................................................. 41126.3. Paramètres de serveur de Standby ................................................................................................ 412

    27. Surveiller l'activité de la base de données ............................................................................................... 41327.1. Outils Unix standard ................................................................................................................. 41327.2. Le récupérateur de statistiques ..................................................................................................... 41327.3. Visualiser les verrous ................................................................................................................ 41927.4. Traces dynamiques ................................................................................................................... 420

    28. Surveiller l'utilisation des disques ......................................................................................................... 42828.1. Déterminer l'utilisation des disques .............................................................................................. 42828.2. Panne pour disque saturé ............................................................................................................ 429

    29. Fiabilité et journaux de transaction ....................................................................................................... 43029.1. Fiabilité .................................................................................................................................. 43029.2. Write-Ahead Logging (WAL) ..................................................................................................... 43129.3. Validation asynchrone (Asynchronous Commit) ............................................................................. 43129.4. Configuration des journaux de transaction ..................................................................................... 43229.5. Vue interne des journaux de transaction ........................................................................................ 434

    30. Tests de régression ............................................................................................................................ 43630.1. Lancer les tests ......................................................................................................................... 43630.2. Évaluation des tests ................................................................................................................... 43730.3. Fichiers de comparaison de variants ............................................................................................. 43930.4. Examen de la couverture du test .................................................................................................. 439

    IV. Interfaces client ...................................................................................................................................... 44131. libpq - Bibliothèque C ........................................................................................................................ 442

    31.1. Fonctions de contrôle de connexion à la base de données .................................................................. 44231.2. Fonctions de statut de connexion ................................................................................................. 447

    Documentation PostgreSQL 9.0.18

    vi

  • 31.3. Fonctions de commandes d'exécution ........................................................................................... 45031.4. Traitement des commandes asynchrones ....................................................................................... 46131.5. Annuler des requêtes en cours d'exécution ..................................................................................... 46431.6. Interface à chemin rapide ........................................................................................................... 46431.7. Notification asynchrone ............................................................................................................. 46531.8. Fonctions associées avec la commande COPY ............................................................................... 46631.9. Fonctions de contrôle ................................................................................................................ 46931.10. Fonctions diverses ................................................................................................................... 47031.11. Traitement des messages .......................................................................................................... 47231.12. Système d'événements ............................................................................................................. 47331.13. Variables d'environnement ........................................................................................................ 47831.14. Fichier de mots de passe ........................................................................................................... 47931.15. Fichier des connexions de service ............................................................................................... 48031.16. Recherches LDAP des paramètres de connexion ........................................................................... 48031.17. Support de SSL ...................................................................................................................... 48131.18. Comportement des programmes threadés ..................................................................................... 48431.19. Construire des applications avec libpq ......................................................................................... 48431.20. Exemples de programmes ......................................................................................................... 485

    32. Objets larges .................................................................................................................................... 49332.1. Introduction ............................................................................................................................. 49332.2. Fonctionnalités d'implémentation ................................................................................................. 49332.3. Interfaces client ........................................................................................................................ 49332.4. Fonctions du côté serveur ........................................................................................................... 49532.5. Programme d'exemple ............................................................................................................... 496

    33. ECPG - SQL embarqué dans du C ........................................................................................................ 50133.1. Concept .................................................................................................................................. 50133.2. Se connecter au serveur de bases de données .................................................................................. 50133.3. Fermer une connexion ............................................................................................................... 50233.4. Exécuter des commandes SQL .................................................................................................... 50233.5. Choisir une connexion ............................................................................................................... 50333.6. Utiliser des variables hôtes ......................................................................................................... 50333.7. SQL dynamique ....................................................................................................................... 50633.8. Bibliothèque pgtypes ................................................................................................................. 50733.9. Utiliser les aires de descripteur .................................................................................................... 51733.10. Mode de compatibilité Informix™ ............................................................................................. 52033.11. Gestion des erreurs .................................................................................................................. 53233.12. Directives du préprocesseur ...................................................................................................... 53533.13. Traiter les programmes en SQL embarqué ................................................................................... 53733.14. Fonctions de bibliothèque ......................................................................................................... 53733.15. Fonctionnement interne ............................................................................................................ 538

    34. Schéma d'information ........................................................................................................................ 54034.1. Le schéma ............................................................................................................................... 54034.2. Types de données ..................................................................................................................... 54034.3. information_schema_catalog_name ............................................................................... 54034.4. administrable_role_authorizations ........................................................................... 54034.5. applicable_roles ............................................................................................................. 54134.6. attributes ......................................................................................................................... 54134.7. check_constraint_routine_usage ................................................................................. 54334.8. check_constraints ........................................................................................................... 54334.9. column_domain_usage ....................................................................................................... 54434.10. column_privileges .......................................................................................................... 54434.11. column_udt_usage ............................................................................................................ 54434.12. columns .............................................................................................................................. 54534.13. constraint_column_usage .............................................................................................. 54734.14. constraint_table_usage ................................................................................................ 54834.15. data_type_privileges .................................................................................................... 54834.16. domain_constraints ........................................................................................................ 54934.17. domain_udt_usage ............................................................................................................ 54934.18. domains .............................................................................................................................. 54934.19. element_types .................................................................................................................. 55134.20. enabled_roles .................................................................................................................. 55334.21. foreign_data_wrapper_options .................................................................................... 55334.22. foreign_data_wrappers .................................................................................................. 553

    Documentation PostgreSQL 9.0.18

    vii

  • 34.23. foreign_server_options ................................................................................................ 55434.24. foreign_servers .............................................................................................................. 55434.25. key_column_usage ............................................................................................................ 55434.26. parameters ........................................................................................................................ 55534.27. referential_constraints .............................................................................................. 55634.28. role_column_grants ........................................................................................................ 55734.29. role_routine_grants ...................................................................................................... 55734.30. role_table_grants .......................................................................................................... 55834.31. role_usage_grants .......................................................................................................... 55834.32. routine_privileges ........................................................................................................ 55934.33. routines ............................................................................................................................ 55934.34. schemata ............................................................................................................................ 56334.35. sequences .......................................................................................................................... 56334.36. sql_features .................................................................................................................... 56434.37. sql_implementation_info .............................................................................................. 56434.38. sql_languages .................................................................................................................. 56534.39. sql_packages .................................................................................................................... 56534.40. sql_parts .......................................................................................................................... 56534.41. sql_sizing ........................................................................................................................ 56634.42. sql_sizing_profiles ...................................................................................................... 56634.43. table_constraints .......................................................................................................... 56634.44. table_privileges ............................................................................................................ 56734.45. tables ................................................................................................................................ 56734.46. triggered_update_columns ............................................................................................ 56834.47. triggers ............................................................................................................................ 56834.48. usage_privileges ............................................................................................................ 56934.49. user_mapping_options .................................................................................................... 57034.50. user_mappings .................................................................................................................. 57034.51. view_column_usage .......................................................................................................... 57134.52. view_routine_usage ........................................................................................................ 57134.53. view_table_usage ............................................................................................................ 57234.54. views .................................................................................................................................. 572

    V. Programmation serveur ............................................................................................................................. 57335. Étendre SQL .................................................................................................................................... 574

    35.1. L'extensibilité .......................................................................................................................... 57435.2. Le système des types de PostgreSQL™ ......................................................................................... 57435.3. Fonctions utilisateur .................................................................................................................. 57535.4. Fonctions en langage de requêtes (SQL) ........................................................................................ 57635.5. Surcharge des fonctions ............................................................................................................. 58535.6. Catégories de volatilité des fonctions ............................................................................................ 58635.7. Fonctions en langage de procédures ............................................................................................. 58735.8. Fonctions internes ..................................................................................................................... 58735.9. Fonctions en langage C .............................................................................................................. 58735.10. Agrégats utilisateur ................................................................................................................. 60735.11. Types utilisateur ..................................................................................................................... 60835.12. Opérateurs définis par l'utilisateur .............................................................................................. 61135.13. Informations sur l'optimisation d'un opérateur .............................................................................. 61135.14. Interfacer des extensions d'index ................................................................................................ 61535.15. Utiliser le langage C++ ............................................................................................................ 623

    36. Déclencheurs (triggers) ...................................................................................................................... 62436.1. Aperçu du comportement des déclencheurs .................................................................................... 62436.2. Visibilité des modifications des données ....................................................................................... 62536.3. Écrire des fonctions déclencheurs en C ......................................................................................... 62636.4. Un exemple complet de trigger .................................................................................................... 627

    37. Système de règles .............................................................................................................................. 63137.1. Arbre de requêtes ..................................................................................................................... 63137.2. Vues et système de règles ........................................................................................................... 63237.3. Règles sur insert, update et delete .............................................................................................. 63737.4. Règles et droits ........................................................................................................................ 64537.5. Règles et statut de commande ..................................................................................................... 64737.6. Règles contre déclencheurs ......................................................................................................... 647

    38. Langages de procédures ..................................................................................................................... 65038.1. Installation des langages de procédures ......................................................................................... 650

    Documentation PostgreSQL 9.0.18

    viii

  • 39. PL/pgSQL - Langage de procédures SQL .............................................................................................. 65239.1. Aperçu ................................................................................................................................... 65239.2. Structure de PL/pgSQL .............................................................................................................. 65339.3. Déclarations ............................................................................................................................ 65439.4. Expressions ............................................................................................................................. 65839.5. Instructions de base ................................................................................................................... 65839.6. Structures de contrôle ................................................................................................................ 66339.7. Curseurs ................................................................................................................................. 67139.8. Erreurs et messages ................................................................................................................... 67639.9. Procédures trigger ..................................................................................................................... 67739.10. Les dessous de PL/pgSQL ........................................................................................................ 68139.11. Astuces pour développer en PL/pgSQL ....................................................................................... 68439.12. Portage d'Oracle™ PL/SQL ...................................................................................................... 686

    40. PL/Tcl - Langage de procédures Tcl ..................................................................................................... 69440.1. Aperçu ................................................................................................................................... 69440.2. Fonctions et arguments PL/Tcl .................................................................................................... 69440.3. Valeurs des données avec PL/Tcl ................................................................................................. 69540.4. Données globales avec PL/Tcl ..................................................................................................... 69540.5. Accès à la base de données depuis PL/Tcl ..................................................................................... 69640.6. Procédures pour déclencheurs en PL/Tcl ....................................................................................... 69740.7. Les modules et la commande unknown ....................................................................................... 69840.8. Noms de procédure Tcl .............................................................................................................. 699

    41. PL/Perl - Langage de procédures Perl .................................................................................................... 70041.1. Fonctions et arguments PL/Perl ................................................................................................... 70041.2. Valeurs en PL/Perl .................................................................................................................... 70241.3. Fonction incluses ...................................................................................................................... 70341.4. Valeurs globales dans PL/Perl ..................................................................................................... 70641.5. Niveaux de confiance de PL/Perl ................................................................................................. 70741.6. Déclencheurs PL/Perl ................................................................................................................ 70841.7. PL/Perl sous le capot ................................................................................................................. 709

    42. PL/Python - Langage de procédures Python ........................................................................................... 71142.1. Python 2 et Python 3 ................................................................................................................. 71142.2. Fonctions PL/Python ................................................................................................................. 71242.3. Valeur des données avec PL/Python ............................................................................................. 71342.4. Sharing Data ............................................................................................................................ 71642.5. Blocs de code anonymes ............................................................................................................ 71742.6. Fonctions de déclencheurs .......................................................................................................... 71742.7. Accès à la base de données ......................................................................................................... 71742.8. Fonctions outils ........................................................................................................................ 71842.9. Variables d'environnement ......................................................................................................... 718

    43. Interface de programmation serveur ...................................................................................................... 72043.1. Fonctions d'interface ................................................................................................................. 72043.2. Fonctions de support d'interface .................................................................................................. 74843.3. Gestion de la mémoire ............................................................................................................... 75643.4. Visibilité des modifications de données ......................................................................................... 76543.5. Exemples ................................................................................................................................ 765

    VI. Référence .............................................................................................................................................. 768I. Commandes SQL ................................................................................................................................ 769

    ABORT ......................................................................................................................................... 770ALTER AGGREGATE ..................................................................................................................... 771ALTER CONVERSION .................................................................................................................... 772ALTER DATABASE ....................................................................................................................... 773ALTER DEFAULT PRIVILEGES ...................................................................................................... 775ALTER DOMAIN ........................................................................................................................... 777ALTER FOREIGN DATA WRAPPER ................................................................................................ 779ALTER FUNCTION ........................................................................................................................ 780ALTER GROUP .............................................................................................................................. 782ALTER INDEX ............................................................................................................................... 783ALTER LANGUAGE ....................................................................................................................... 785ALTER LARGE OBJECT ................................................................................................................. 786ALTER OPERATOR ........................................................................................................................ 787ALTER OPERATOR CLASS ............................................................................................................ 788ALTER OPERATOR FAMILY .......................................................................................................... 789

    Documentation PostgreSQL 9.0.18

    ix

  • ALTER ROLE ................................................................................................................................ 792ALTER SCHEMA ........................................................................................................................... 795ALTER SEQUENCE ........................................................................................................................ 796ALTER SERVER ............................................................................................................................ 798ALTER TABLE .............................................................................................................................. 799ALTER TABLESPACE .................................................................................................................... 806ALTER TEXT SEARCH CONFIGURATION ...................................................................................... 807ALTER TEXT SEARCH DICTIONARY ............................................................................................. 809ALTER TEXT SEARCH PARSER ..................................................................................................... 811ALTER TEXT SEARCH TEMPLATE ................................................................................................ 812ALTER TRIGGER ........................................................................................................................... 813ALTER TYPE ................................................................................................................................. 814ALTER USER ................................................................................................................................. 815ALTER USER MAPPING ................................................................................................................. 816ALTER VIEW ................................................................................................................................ 817ANALYZE ..................................................................................................................................... 818BEGIN .......................................................................................................................................... 820CHECKPOINT ................................................................................................................................ 822CLOSE .......................................................................................................................................... 823CLUSTER ...................................................................................................................................... 824COMMENT .................................................................................................................................... 826COMMIT ....................................................................................................................................... 829COMMIT PREPARED ..................................................................................................................... 830COPY ............................................................................................................................................ 831CREATE AGGREGATE ................................................................................................................... 838CREATE CAST .............................................................................................................................. 841CREATE CONSTRAINT TRIGGER .................................................................................................. 844CREATE CONVERSION ................................................................................................................. 845CREATE DATABASE ..................................................................................................................... 847CREATE DOMAIN ......................................................................................................................... 849CREATE FOREIGN DATA WRAPPER .............................................................................................. 851CREATE FUNCTION ...................................................................................................................... 853CREATE GROUP ............................................................................................................................ 859CREATE INDEX ............................................................................................................................. 860CREATE LANGUAGE .................................................................................................................... 865CREATE OPERATOR ..................................................................................................................... 867CREATE OPERATOR CLASS .......................................................................................................... 869CREATE OPERATOR FAMILY ........................................................................................................ 871CREATE ROLE .............................................................................................................................. 872CREATE RULE .............................................................................................................................. 875CREATE SCHEMA ......................................................................................................................... 877CREATE SEQUENCE ..................................................................................................................... 879CREATE SERVER .......................................................................................................................... 882CREATE TABLE ............................................................................................................................ 884CREATE TABLE AS ....................................................................................................................... 894CREATE TABLESPACE .................................................................................................................. 896CREATE TEXT SEARCH CONFIGURATION .................................................................................... 897CREATE TEXT SEARCH DICTIONARY ........................................................................................... 898CREATE TEXT SEARCH PARSER ................................................................................................... 899CREATE TEXT SEARCH TEMPLATE .............................................................................................. 900CREATE TRIGGER ........................................................................................................................ 901CREATE TYPE ............................................................................................................................... 904CREATE USER .............................................................................................................................. 910CREATE USER MAPPING ............................................................................................................... 911CREATE VIEW .............................................................................................................................. 912DEALLOCATE ............................................................................................................................... 914DECLARE ..................................................................................................................................... 915DELETE ........................................................................................................................................ 918DISCARD ...................................................................................................................................... 920DO ................................................................................................................................................ 921DROP AGGREGATE ....................................................................................................................... 922DROP CAST .................................................................................................................................. 923DROP CONVERSION ..................................................................................................................... 924

    Documentation PostgreSQL 9.0.18

    x

  • DROP DATABASE ......................................................................................................................... 925DROP DOMAIN ............................................................................................................................. 926DROP FOREIGN DATA WRAPPER .................................................................................................. 927DROP FUNCTION .......................................................................................................................... 928DROP GROUP ................................................................................................................................ 929DROP INDEX ................................................................................................................................. 930DROP LANGUAGE ........................................................................................................................ 931DROP OPERATOR ......................................................................................................................... 932DROP OPERATOR CLASS .............................................................................................................. 933DROP OPERATOR FAMILY ............................................................................................................ 934DROP OWNED ............................................................................................................................... 935DROP ROLE .................................................................................................................................. 936DROP RULE .................................................................................................................................. 937DROP SCHEMA ............................................................................................................................. 938DROP SEQUENCE .......................................................................................................................... 939DROP SERVER .............................................................................................................................. 940DROP TABLE ................................................................................................................................ 941DROP TABLESPACE ...................................................................................................................... 942DROP TEXT SEARCH CONFIGURATION ........................................................................................ 943DROP TEXT SEARCH DICTIONARY ............................................................................................... 944DROP TEXT SEARCH PARSER ....................................................................................................... 945DROP TEXT SEARCH TEMPLATE .................................................................................................. 946DROP TRIGGER ............................................................................................................................. 947DROP TYPE ................................................................................................................................... 948DROP USER .................................................................................................................................. 949DROP USER MAPPING ................................................................................................................... 950DROP VIEW .................................................................................................................................. 951END .............................................................................................................................................. 952EXECUTE ..................................................................................................................................... 953EXPLAIN ...................................................................................................................................... 954FETCH .......................................................................................................................................... 958GRANT ......................................................................................................................................... 961INSERT ......................................................................................................................................... 966LISTEN ......................................................................................................................................... 968LOAD ........................................................................................................................................... 969LOCK ............................................................................................................................................ 970MOVE ........................................................................................................................................... 972NOTIFY ........................................................................................................................................ 973PREPARE ...................................................................................................................................... 975PREPARE TRANSACTION .............................................................................................................. 977REASSIGN OWNED ....................................................................................................................... 979REINDEX ...................................................................................................................................... 980RELEASE SAVEPOINT ................................................................................................................... 982RESET .......................................................................................................................................... 983REVOKE ....................................................................................................................................... 984ROLLBACK ................................................................................................................................... 987ROLLBACK PREPARED ................................................................................................................. 988ROLLBACK TO SAVEPOINT .......................................................................................................... 989SAVEPOINT .................................................................................................................................. 991SELECT ........................................................................................................................................ 992SELECT INTO .............................................................................................................................. 1005SET ............................................................................................................................................. 1007SET CONSTRAINTS ..................................................................................................................... 1010SET ROLE ................................................................................................................................... 1011SET SESSION AUTHORIZATION .................................................................................................. 1013SET TRANSACTION .................................................................................................................... 1014SHOW ......................................................................................................................................... 1016START TRANSACTION ................................................................................................................ 1018TRUNCATE ................................................................................................................................. 1019UNLISTEN .................................................................................................................................. 1021UPDATE ...................................................................................................................................... 1022VACUUM .................................................................................................................................... 1025VALUES ...................................................................................................................................... 1028

    Documentation PostgreSQL 9.0.18

    xi

  • II. Applications client de PostgreSQL ...................................................................................................... 1030clusterdb ...................................................................................................................................... 1031createdb ....................................................................................................................................... 1033createlang ..................................................................................................................................... 1035createuser ..................................................................................................................................... 1037dropdb ......................................................................................................................................... 1040droplang ....................................................................................................................................... 1042dropuser ....................................................................................................................................... 1044ecpg ............................................................................................................................................ 1046pg_config ..................................................................................................................................... 1048pg_dump ...................................................................................................................................... 1050pg_dumpall ................................................................................................................................... 1056pg_restore ..................................................................................................................................... 1060psql ............................................................................................................................................. 1065reindexdb ..................................................................................................................................... 1085vacuumdb ..................................................................................................................................... 1087

    III. Applications relatives au serveur PostgreSQL ....................................................................................... 1089initdb ........................................................................................................................................... 1090pg_controldata ............................................................................................................................... 1093pg_ctl .......................................................................................................................................... 1094pg_resetxlog ................................................................................................................................. 1098postgres ........................................................................................................................................ 1100postmaster .................................................................................................................................... 1105

    VII. Internes .............................................................................................................................................. 110644. Présentation des mécanismes internes de PostgreSQL ............................................................................ 1107

    44.1. Chemin d'une requête .............................................................................................................. 110744.2. Établissement des connexions ................................................................................................... 110744.3. Étape d'analyse ...................................................................................................................... 110844.4. Système de règles de PostgreSQL™ ........................................................................................... 110844.5. Planificateur/Optimiseur .......................................................................................................... 110944.6. Exécuteur .............................................................................................................................. 1110

    45. Catalogues système ......................................................................................................................... 111145.1. Aperçu ................................................................................................................................. 111145.2. pg_aggregate ......................................................................................................................... 111245.3. pg_am .................................................................................................................................. 111245.4. pg_amop ............................................................................................................................... 111345.5. pg_amproc ............................................................................................................................ 111445.6. pg_attrdef ............................................................................................................................. 111445.7. pg_attribute ........................................................................................................................... 111545.8. pg_authid .............................................................................................................................. 111645.9. pg_auth_members ................................................................................................................... 111745.10. pg_cast ............................................................................................................................... 111745.11. pg_class .............................................................................................................................. 111845.12. pg_constraint ....................................................................................................................... 112045.13. pg_conversion ...................................................................................................................... 112145.14. pg_database ......................................................................................................................... 112145.15. pg_db_role_setting ................................................................................................................ 112245.16. pg_default_acl .


Recommended