documentation postgresql 9.3.15

2225
Documentation PostgreSQL 9.3.22 The PostgreSQL Global Development Group

Upload: dinhkien

Post on 22-Jan-2017

264 views

Category:

Documents


4 download

TRANSCRIPT

  • Documentation PostgreSQL 9.3.22

    The PostgreSQL Global Development Group

  • Documentation PostgreSQL 9.3.22The PostgreSQL Global Development GroupCopyright 1996-2018 The PostgreSQL Global Development Group

    Legal Notice

    PostgreSQL is Copyright (c) 1996-2018 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.

  • Prface ....................................................................................................................................................... xxii1. Dfinition de PostgreSQL ................................................................................................................. xxii2. Bref historique de PostgreSQL ........................................................................................................... xxii3. Conventions ..................................................................................................................................... xxiv4. Pour plus d'informations ...................................................................................................................... xxiv5. Lignes de conduite pour les rapports de bogues ....................................................................................... xxiv

    I. Tutoriel ...................................................................................................................................................... 11. Dmarrage ............................................................................................................................................ 2

    1.1. Installation ................................................................................................................................... 21.2. Concepts architecturaux de base ....................................................................................................... 21.3. Cration d'une base de donnes ........................................................................................................ 21.4. Accder une base ........................................................................................................................ 4

    2. Le langage SQL .................................................................................................................................... 52.1. Introduction ................................................................................................................................. 52.2. Concepts ..................................................................................................................................... 52.3. Crer 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'agrgat ........................................................................................................................ 92.8. Mises jour ................................................................................................................................ 102.9. Suppressions ............................................................................................................................... 11

    3. Fonctionnalits avances ........................................................................................................................ 123.1. Introduction ................................................................................................................................ 123.2. Vues .......................................................................................................................................... 123.3. Cls trangres ............................................................................................................................ 123.4. Transactions ................................................................................................................................ 133.5. Fonctions de fentrage .................................................................................................................. 143.6. Hritage ........................................................................................................................................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. Dfinition des donnes ........................................................................................................................... 395.1. Notions fondamentales sur les tables ................................................................................................ 395.2. Valeurs par dfaut ........................................................................................................................ 405.3. Contraintes ................................................................................................................................. 405.4. Colonnes systme ......................................................................................................................... 465.5. Modification des tables .................................................................................................................. 475.6. Droits ......................................................................................................................................... 495.7. Schmas ..................................................................................................................................... 505.8. L'hritage ......................................................................................................................................5.9. Partitionnement ............................................................................................................................ 565.10. Donnes distantes ....................................................................................................................... 615.11. Autres objets de la base de donnes ................................................................................................ 625.12. Gestion des dpendances .............................................................................................................. 62

    6. Manipulation de donnes ........................................................................................................................ 646.1. Insrer des donnes ....................................................................................................................... 646.2. Actualiser les donnes ................................................................................................................... 656.3. Supprimer des donnes .................................................................................................................. 656.4. Renvoyer des donnes provenant de lignes modifies .......................................................................... 66

    7. Requtes ............................................................................................................................................. 677.1. Aperu ....................................................................................................................................... 677.2. Expressions de table ..................................................................................................................... 677.3. Listes de slection ........................................................................................................................ 767.4. Combiner des requtes .................................................................................................................. 777.5. Tri des lignes ............................................................................................................................... 787.6. LIMIT et OFFSET ....................................................................................................................... 787.7. Listes VALUES ............................................................................................................................ 797.8. Requtes WITH (Common Table Expressions) ................................................................................... 80

    iii

  • 8. Types de donnes ................................................................................................................................. 858.1. Types numriques ........................................................................................................................ 868.2. Types montaires ......................................................................................................................... 898.3. Types caractre ............................................................................................................................ 908.4. Types de donnes binaires .............................................................................................................. 928.5. Types date/heure .......................................................................................................................... 938.6. Type boolen ............................................................................................................................. 1018.7. Types numration ..................................................................................................................... 1028.8. Types gomtriques .................................................................................................................... 1048.9. Types adresses rseau ................................................................................................................. 1058.10. Type chane de bits ................................................................................................................... 1078.11. Types de recherche plein texte .................................................................................................... 1078.12. Type UUID ............................................................................................................................. 1108.13. Type XML .............................................................................................................................. 1108.14. Type JSON .............................................................................................................................. 1128.15. Tableaux ................................................................................................................................. 1128.16. Types composites ..................................................................................................................... 1198.17. Types intervalle de valeurs ......................................................................................................... 1248.18. Types identifiant d'objet ............................................................................................................. 1288.19. Pseudo-Types .......................................................................................................................... 129

    9. Fonctions et oprateurs ........................................................................................................................ 1319.1. Oprateurs logiques .................................................................................................................... 1319.2. Oprateurs de comparaison .......................................................................................................... 1319.3. Fonctions et oprateurs mathmatiques ........................................................................................... 1339.4. Fonctions et oprateurs de chanes ................................................................................................. 1359.5. Fonctions et oprateurs de chanes binaires ...................................................................................... 1469.6. Fonctions et oprateurs sur les chanes de bits .................................................................................. 1489.7. Correspondance de motif ............................................................................................................. 1499.8. Fonctions de formatage des types de donnes .................................................................................. 1619.9. Fonctions et oprateurs sur date/heure ............................................................................................ 1669.10. Fonctions de support enum ......................................................................................................... 1759.11. Fonctions et oprateurs gomtriques ........................................................................................... 1769.12. Fonctions et oprateurs sur les adresses rseau ............................................................................... 1799.13. Fonctions et oprateurs de la recherche plein texte .......................................................................... 1819.14. Fonctions XML ........................................................................................................................ 1849.15. Fonctions et oprateurs JSON ..................................................................................................... 1939.16. Fonctions de manipulation de squences ....................................................................................... 1959.17. Expressions conditionnelles ........................................................................................................ 1979.18. Fonctions et oprateurs de tableaux .............................................................................................. 1999.19. Fonctions et oprateurs sur les donnes de type range ...................................................................... 2029.20. Fonctions d'agrgat ................................................................................................................... 2039.21. Fonctions Window .................................................................................................................... 2069.22. Expressions de sous-requtes ...................................................................................................... 2079.23. Comparaisons de lignes et de tableaux .......................................................................................... 2109.24. Fonctions retournant des ensembles ............................................................................................. 2129.25. Fonctions d'informations systme ................................................................................................ 2149.26. Fonctions d'administration systme .............................................................................................. 2229.27. Fonctions trigger ...................................................................................................................... 2339.28. Fonctions des triggers sur les vnements ...................................................................................... 234

    10. Conversion de types .......................................................................................................................... 23610.1. Aperu ................................................................................................................................... 23610.2. Oprateurs ............................................................................................................................... 23710.3. Fonctions ................................................................................................................................ 24010.4. Stockage de valeurs ................................................................................................................... 24210.5. Constructions UNION, CASE et constructions relatives .................................................................... 243

    11. Index .............................................................................................................................................. 24511.1. Introduction ............................................................................................................................. 24511.2. Types d'index ........................................................................................................................... 24511.3. Index multicolonnes .................................................................................................................. 24711.4. Index et ORDER BY .................................................................................................................. 24811.5. Combiner des index multiples ..................................................................................................... 24811.6. Index d'unicit ......................................................................................................................... 24911.7. Index d'expressions ................................................................................................................... 249

    Documentation PostgreSQL 9.3.22

    iv

  • 11.8. Index partiels ........................................................................................................................... 25011.9. Classes et familles d'oprateurs ................................................................................................... 25211.10. Index et collationnements ......................................................................................................... 25311.11. Examiner l'utilisation des index ................................................................................................. 253

    12. Recherche plein texte ......................................................................................................................... 25512.1. Introduction ............................................................................................................................. 25512.2. Tables et index ......................................................................................................................... 25712.3. Contrler la recherche plein texte ................................................................................................. 25912.4. Fonctionnalits supplmentaires .................................................................................................. 26412.5. Analyseurs .............................................................................................................................. 26812.6. Dictionnaires ........................................................................................................................... 26912.7. Exemple de configuration ........................................................................................................... 27612.8. Tester et dboguer la recherche plein texte ..................................................................................... 27712.9. Types d'index GiST et GIN ........................................................................................................ 28012.10. Support de psql ....................................................................................................................... 28112.11. Limites ................................................................................................................................. 28312.12. Migration partir d'une recherche plein texte antrieure 8.3 .......................................................... 283

    13. Contrle d'accs simultan .................................................................................................................. 28513.1. Introduction ............................................................................................................................. 28513.2. Isolation des transactions ........................................................................................................... 28513.3. Verrouillage explicite ................................................................................................................ 28913.4. Vrification de cohrence des donnes au niveau de l'application ....................................................... 29313.5. Avertissements ......................................................................................................................... 29413.6. Verrouillage et index ................................................................................................................. 294

    14. Conseils sur les performances .............................................................................................................. 29614.1. Utiliser EXPLAIN ................................................................................................................... 29614.2. Statistiques utilises par le planificateur ........................................................................................ 30414.3. Contrler le planificateur avec des clauses JOIN explicites .............................................................. 30514.4. Remplir une base de donnes ...................................................................................................... 30714.5. Configuration avec une perte accepte .......................................................................................... 309

    III. Administration du serveur ......................................................................................................................... 31015. Procdure d'installation de PostgreSQL du code source ......................................................................... 311

    15.1. Version courte ......................................................................................................................... 31115.2. Prrequis ................................................................................................................................. 31115.3. Obtenir les sources .................................................................................................................... 31315.4. Procdure d'installation .............................................................................................................. 31315.5. Initialisation post-installation ...................................................................................................... 32115.6. Dmarrer ................................................................................................................................ 32215.7. Et maintenant ? ........................................................................................................................ 32215.8. Plateformes supportes .............................................................................................................. 32315.9. Notes spcifiques des plateformes ............................................................................................. 323

    16. Installation partir du code source sur Windows .................................................................................. 33116.1. Construire avec Visual C++ ou le Microsoft Windows SDK ....................................................... 33116.2. Construire libpq avec Visual C++ ou Borland C++ ................................................................... 335

    17. Configuration du serveur et mise en place .............................................................................................. 33617.1. Compte utilisateur PostgreSQL ................................................................................................ 33617.2. Crer un groupe de base de donnes ............................................................................................. 33617.3. Lancer le serveur de bases de donnes .......................................................................................... 33717.4. Grer les ressources du noyau ..................................................................................................... 34017.5. Arrter le serveur ...................................................................................................................... 34617.6. Mise jour d'une instance PostgreSQL ...................................................................................... 34717.7. Empcher l'usurpation de serveur ................................................................................................. 34917.8. Options de chiffrement .............................................................................................................. 34917.9. Connexions tcp/ip scurises avec ssl ........................................................................................... 35017.10. Connexions tcp/ip scurises avec des tunnels ssh tunnels ............................................................... 35317.11. Enregistrer le journal des vnements sous Windows .................................................................... 353

    18. Configuration du serveur .................................................................................................................... 35518.1. Paramtres de configuration ........................................................................................................ 35518.2. Emplacement des fichiers ........................................................................................................... 35718.3. Connexions et authentification .................................................................................................... 35818.4. Consommation des ressources ..................................................................................................... 36218.5. Write Ahead Log ...................................................................................................................... 36518.6. Rplication .............................................................................................................................. 369

    Documentation PostgreSQL 9.3.22

    v

  • 18.7. Planification des requtes ........................................................................................................... 37118.8. Remonter et tracer les erreurs ...................................................................................................... 37518.9. Statistiques d'excution .............................................................................................................. 38218.10. Nettoyage (vacuum) automatique .............................................................................................. 38318.11. Valeurs par dfaut des connexions client ..................................................................................... 38518.12. Gestion des verrous ................................................................................................................. 39018.13. Compatibilit de version et de plateforme .................................................................................... 39018.14. Gestion des erreurs .................................................................................................................. 39218.15. Options prconfigures ............................................................................................................ 39218.16. Options personnalises ............................................................................................................. 39418.17. Options pour les dveloppeurs ................................................................................................... 39418.18. Options courtes ...................................................................................................................... 396

    19. Authentification du client ................................................................................................................... 39719.1. Le fichier pg_hba.conf ......................................................................................................... 39719.2. Correspondances d'utilisateurs .................................................................................................... 40219.3. Mthodes d'authentification ........................................................................................................ 40319.4. Problmes d'authentification ....................................................................................................... 409

    20. Rles de la base de donnes ................................................................................................................ 41120.1. Rles de la base de donnes ........................................................................................................ 41120.2. Attributs des rles ..................................................................................................................... 41120.3. Appartenance d'un rle .............................................................................................................. 41220.4. Supprimer des rles ................................................................................................................... 41420.5. Scurit des fonctions ................................................................................................................ 414

    21. Administration des bases de donnes .................................................................................................... 41521.1. Aperu ................................................................................................................................... 41521.2. Cration d'une base de donnes ................................................................................................... 41521.3. Bases de donnes modles .......................................................................................................... 41621.4. Configuration d'une base de donnes ............................................................................................ 41721.5. Dtruire une base de donnes ...................................................................................................... 41721.6. Tablespaces ............................................................................................................................. 417

    22. Localisation ..................................................................................................................................... 41922.1. Support des locales ................................................................................................................... 41922.2. Support des collations ................................................................................................................ 42122.3. Support des jeux de caractres ..................................................................................................... 423

    23. Planifier les tches de maintenance ....................................................................................................... 42823.1. Nettoyages rguliers .................................................................................................................. 42823.2. R-indexation rgulire .............................................................................................................. 43423.3. Maintenance du fichier de traces .................................................................................................. 434

    24. Sauvegardes et restaurations ................................................................................................................ 43624.1. Sauvegarde SQL ...................................................................................................................... 43624.2. Sauvegarde de niveau systme de fichiers ...................................................................................... 43824.3. Archivage continu et rcupration d'un instantan (PITR) ................................................................. 439

    25. Haute disponibilit, rpartition de charge et rplication ............................................................................. 44725.1. Comparaison de diffrentes solutions ........................................................................................... 44725.2. Serveurs de Standby par transfert de journaux ................................................................................ 44925.3. Bascule (Failover) .................................................................................................................... 45525.4. Mthode alternative pour le log shipping ....................................................................................... 45525.5. Hot Standby ............................................................................................................................ 457

    26. Configuration de la rcupration .......................................................................................................... 46426.1. Paramtres de rcupration de l'archive ......................................................................................... 46426.2. Paramtres de cible de rcupration .............................................................................................. 46426.3. Paramtres de serveur de Standby ................................................................................................ 465

    27. Surveiller l'activit de la base de donnes ............................................................................................... 46727.1. Outils Unix standard ................................................................................................................. 46727.2. Le rcuprateur de statistiques ..................................................................................................... 46827.3. Visualiser les verrous ................................................................................................................ 47827.4. Traces dynamiques ................................................................................................................... 479

    28. Surveiller l'utilisation des disques ......................................................................................................... 48728.1. Dterminer l'utilisation des disques .............................................................................................. 48728.2. Panne pour disque satur ............................................................................................................ 488

    29. Fiabilit et journaux de transaction ....................................................................................................... 48929.1. Fiabilit .................................................................................................................................. 48929.2. Write-Ahead Logging (WAL) ..................................................................................................... 490

    Documentation PostgreSQL 9.3.22

    vi

  • 29.3. Validation asynchrone (Asynchronous Commit) ............................................................................. 49129.4. Configuration des journaux de transaction ..................................................................................... 49229.5. Vue interne des journaux de transaction ........................................................................................ 494

    30. Tests de rgression ............................................................................................................................ 49630.1. Lancer les tests ......................................................................................................................... 49630.2. valuation des tests ................................................................................................................... 49830.3. Fichiers de comparaison de variants ............................................................................................. 50030.4. Examen de la couverture du test .................................................................................................. 501

    IV. Interfaces client ...................................................................................................................................... 50231. libpq - Bibliothque C ........................................................................................................................ 503

    31.1. Fonctions de contrle de connexion la base de donnes .................................................................. 50331.2. Fonctions de statut de connexion ................................................................................................. 51231.3. Fonctions de commandes d'excution ........................................................................................... 51531.4. Traitement des commandes asynchrones ....................................................................................... 52631.5. Rcuprer le rsultats des requtes ligne par ligne ........................................................................... 52931.6. Annuler des requtes en cours d'excution ..................................................................................... 53031.7. Interface chemin rapide ........................................................................................................... 53131.8. Notification asynchrone ............................................................................................................. 53231.9. Fonctions associes avec la commande COPY ............................................................................... 53231.10. Fonctions de contrle ............................................................................................................... 53631.11. Fonctions diverses ................................................................................................................... 53631.12. Traitement des messages .......................................................................................................... 53931.13. Systme d'vnements ............................................................................................................. 53931.14. Variables d'environnement ........................................................................................................ 54531.15. Fichier de mots de passe ........................................................................................................... 54631.16. Fichier des connexions de service ............................................................................................... 54631.17. Recherches LDAP des paramtres de connexion ........................................................................... 54731.18. Support de SSL ...................................................................................................................... 54731.19. Comportement des programmes threads ..................................................................................... 55131.20. Construire des applications avec libpq ......................................................................................... 55131.21. Exemples de programmes ......................................................................................................... 552

    32. Objets larges .................................................................................................................................... 56132.1. Introduction ............................................................................................................................. 56132.2. Fonctionnalits d'implmentation ................................................................................................. 56132.3. Interfaces client ........................................................................................................................ 56132.4. Fonctions du ct serveur ........................................................................................................... 56432.5. Programme d'exemple ............................................................................................................... 565

    33. ECPG SQL embarqu en C ................................................................................................................. 57033.1. Le Concept .............................................................................................................................. 57033.2. Grer les Connexions la Base de Donnes ................................................................................... 57033.3. Excuter des Commandes SQL ................................................................................................... 57233.4. Utiliser des Variables Htes ........................................................................................................ 57533.5. SQL Dynamique ...................................................................................................................... 58633.6. Librairie pgtypes ...................................................................................................................... 58733.7. Utiliser les Zones de Descripteur ................................................................................................. 59833.8. Gestion des Erreurs ................................................................................................................... 60933.9. Directives de Prprocesseur ........................................................................................................ 61433.10. Traiter des Programmes en SQL Embarqu .................................................................................. 61633.11. Fonctions de la Librairie ........................................................................................................... 61633.12. Large Objects ......................................................................................................................... 61733.13. Applications C++ .................................................................................................................... 61833.14. Commandes SQL Embarques .................................................................................................. 62133.15. Mode de Compatibilit Informix ............................................................................................. 64133.16. Fonctionnement Interne ............................................................................................................ 652

    34. Schma d'information ........................................................................................................................ 65534.1. Le schma ............................................................................................................................... 65534.2. Types de donnes ..................................................................................................................... 65534.3. information_schema_catalog_name ............................................................................... 65634.4. administrable_role_authorizations ........................................................................... 65634.5. applicable_roles ............................................................................................................. 65634.6. attributes ......................................................................................................................... 65634.7. character_sets ................................................................................................................. 65934.8. check_constraint_routine_usage ................................................................................. 660

    Documentation PostgreSQL 9.3.22

    vii

  • 34.9. check_constraints ........................................................................................................... 66034.10. collations ........................................................................................................................ 66034.11. collation_character_set_applicability .................................................................. 66134.12. column_domain_usage ...................................................................................................... 66134.13. column_options ................................................................................................................ 66234.14. column_privileges .......................................................................................................... 66234.15. column_udt_usage ............................................................................................................ 66234.16. columns .............................................................................................................................. 66334.17. constraint_column_usage .............................................................................................. 66634.18. constraint_table_usage ................................................................................................ 66634.19. data_type_privileges .................................................................................................... 66634.20. domain_constraints ........................................................................................................ 66734.21. domain_udt_usage ............................................................................................................ 66734.22. domains .............................................................................................................................. 66834.23. element_types .................................................................................................................. 66934.24. enabled_roles .................................................................................................................. 67134.25. foreign_data_wrapper_options .................................................................................... 67134.26. foreign_data_wrappers .................................................................................................. 67234.27. foreign_server_options ................................................................................................ 67234.28. foreign_servers .............................................................................................................. 67234.29. foreign_table_options .................................................................................................. 67334.30. foreign_tables ................................................................................................................ 67334.31. key_column_usage ............................................................................................................ 67434.32. parameters ........................................................................................................................ 67434.33. referential_constraints .............................................................................................. 67534.34. role_column_grants ........................................................................................................ 67634.35. role_routine_grants ...................................................................................................... 67634.36. role_table_grants .......................................................................................................... 67734.37. role_udt_grants .............................................................................................................. 67734.38. role_usage_grants .......................................................................................................... 67834.39. routine_privileges ........................................................................................................ 67834.40. routines ............................................................................................................................ 67934.41. schemata ............................................................................................................................ 68234.42. sequences .......................................................................................................................... 68334.43. sql_features .................................................................................................................... 68334.44. sql_implementation_info .............................................................................................. 68434.45. sql_languages .................................................................................................................. 68434.46. sql_packages .................................................................................................................... 68534.47. sql_parts .......................................................................................................................... 68534.48. sql_sizing ........................................................................................................................ 68534.49. sql_sizing_profiles ...................................................................................................... 68634.50. table_constraints .......................................................................................................... 68634.51. table_privileges ............................................................................................................ 68734.52. tables ................................................................................................................................ 68734.53. triggered_update_columns ............................................................................................ 68834.54. triggers ............................................................................................................................ 68834.55. udt_privileges ................................................................................................................ 68934.56. usage_privileges ............................................................................................................ 69034.57. user_defined_types ........................................................................................................ 69034.58. user_mapping_options .................................................................................................... 69234.59. user_mappings .................................................................................................................. 69234.60. view_column_usage .......................................................................................................... 69234.61. view_routine_usage ........................................................................................................ 69334.62. view_table_usage ............................................................................................................ 69334.63. views .................................................................................................................................. 694

    V. Programmation serveur ............................................................................................................................. 69535. tendre SQL .................................................................................................................................... 696

    35.1. L'extensibilit .......................................................................................................................... 69635.2. Le systme des types de PostgreSQL ......................................................................................... 69635.3. Fonctions utilisateur .................................................................................................................. 69735.4. Fonctions en langage de requtes (SQL) ........................................................................................ 69835.5. Surcharge des fonctions ............................................................................................................. 70835.6. Catgories de volatilit des fonctions ............................................................................................ 709

    Documentation PostgreSQL 9.3.22

    viii

  • 35.7. Fonctions en langage de procdures ............................................................................................. 71035.8. Fonctions internes ..................................................................................................................... 71035.9. Fonctions en langage C .............................................................................................................. 71135.10. Agrgats utilisateur ................................................................................................................. 72935.11. Types utilisateur ..................................................................................................................... 73135.12. Oprateurs dfinis par l'utilisateur .............................................................................................. 73335.13. Informations sur l'optimisation d'un oprateur .............................................................................. 73435.14. Interfacer des extensions d'index ................................................................................................ 73735.15. Empaqueter des objets dans une extension ................................................................................... 74735.16. Outils de construction d'extension .............................................................................................. 752

    36. Dclencheurs (triggers) ...................................................................................................................... 75436.1. Aperu du comportement des dclencheurs .................................................................................... 75436.2. Visibilit des modifications des donnes ....................................................................................... 75536.3. crire des fonctions dclencheurs en C ......................................................................................... 75636.4. Un exemple complet de trigger .................................................................................................... 758

    37. Dclencheurs (triggers) sur vnement .................................................................................................. 76137.1. Aperu du fonctionnement des triggers sur vnement ..................................................................... 76137.2. Matrice de dclenchement des triggers sur vnement ...................................................................... 76137.3. crire des fonctions trigger sur vnement en C .............................................................................. 76437.4. Un exemple complet de trigger sur vnement ................................................................................ 764

    38. Systme de rgles .............................................................................................................................. 76638.1. Arbre de requtes ..................................................................................................................... 76638.2. Vues et systme de rgles ........................................................................................................... 76738.3. Vues matrialises .................................................................................................................... 77338.4. Rgles sur insert, update et delete .............................................................................................. 77538.5. Rgles et droits ........................................................................................................................ 78338.6. Rgles et statut de commande ..................................................................................................... 78538.7. Rgles contre dclencheurs ......................................................................................................... 785

    39. Langages de procdures ..................................................................................................................... 78839.1. Installation des langages de procdures ......................................................................................... 788

    40. PL/pgSQL - Langage de procdures SQL .............................................................................................. 79040.1. Aperu ................................................................................................................................... 79040.2. Structure de PL/pgSQL .............................................................................................................. 79140.3. Dclarations ............................................................................................................................ 79240.4. Expressions ............................................................................................................................. 79740.5. Instructions de base ................................................................................................................... 79740.6. Structures de contrle ................................................................................................................ 80240.7. Curseurs ................................................................................................................................. 81340.8. Erreurs et messages ................................................................................................................... 81840.9. Procdures trigger ..................................................................................................................... 81940.10. Les dessous de PL/pgSQL ........................................................................................................ 82540.11. Astuces pour dvelopper en PL/pgSQL ....................................................................................... 82840.12. Portage d'Oracle PL/SQL ...................................................................................................... 830

    41. PL/Tcl - Langage de procdures Tcl ..................................................................................................... 83841.1. Aperu ................................................................................................................................... 83841.2. Fonctions et arguments PL/Tcl .................................................................................................... 83841.3. Valeurs des donnes avec PL/Tcl ................................................................................................. 83941.4. Donnes globales avec PL/Tcl ..................................................................................................... 83941.5. Accs la base de donnes depuis PL/Tcl ..................................................................................... 84041.6. Procdures pour dclencheurs en PL/Tcl ....................................................................................... 84141.7. Les modules et la commande unknown ....................................................................................... 84341.8. Noms de procdure Tcl .............................................................................................................. 843

    42. PL/Perl - Langage de procdures Perl .................................................................................................... 84442.1. Fonctions et arguments PL/Perl ................................................................................................... 84442.2. Valeurs en PL/Perl .................................................................................................................... 84742.3. Fonction incluses ...................................................................................................................... 84742.4. Valeurs globales dans PL/Perl ..................................................................................................... 85142.5. Niveaux de confiance de PL/Perl ................................................................................................. 85142.6. Dclencheurs PL/Perl ................................................................................................................ 85242.7. PL/Perl sous le capot ................................................................................................................. 853

    43. PL/Python - Langage de procdures Python ........................................................................................... 85543.1. Python 2 et Python 3 ................................................................................................................. 85543.2. Fonctions PL/Python ................................................................................................................. 856

    Documentation PostgreSQL 9.3.22

    ix

  • 43.3. Valeur des donnes avec PL/Python ............................................................................................. 85743.4. Sharing Data ............................................................................................................................ 86143.5. Blocs de code anonymes ............................................................................................................ 86143.6. Fonctions de dclencheurs .......................................................................................................... 86143.7. Accs la base de donnes ......................................................................................................... 86243.8. Sous-transactions explicites ........................................................................................................ 86443.9. Fonctions outils ........................................................................................................................ 86643.10. Variables d'environnement ........................................................................................................ 866

    44. Interface de programmation serveur ...................................................................................................... 86844.1. Fonctions d'interface ................................................................................................................. 86844.2. Fonctions de support d'interface .................................................................................................. 89844.3. Gestion de la mmoire ............................................................................................................... 90644.4. Visibilit des modifications de donnes ......................................................................................... 91544.5. Exemples ................................................................................................................................ 915

    45. Processus en tche de fond (background worker) ..................................................................................... 918VI. Rfrence .............................................................................................................................................. 920

    I. Commandes SQL ................................................................................................................................ 921ABORT ......................................................................................................................................... 922ALTER AGGREGATE ..................................................................................................................... 923ALTER COLLATION ...................................................................................................................... 924ALTER CONVERSION .................................................................................................................... 925ALTER DATABASE ....................................................................................................................... 926ALTER DEFAULT PRIVILEGES ...................................................................................................... 928ALTER DOMAIN ........................................................................................................................... 930ALTER EVENT TRIGGER ............................................................................................................... 933ALTER EXTENSION ...................................................................................................................... 934ALTER FOREIGN DATA WRAPPER ................................................................................................ 937ALTER FOREIGN TABLE ............................................................................................................... 939ALTER FUNCTION ........................................................................................................................ 942ALTER GROUP .............................................................................................................................. 944ALTER INDEX ............................................................................................................................... 945ALTER LANGUAGE ....................................................................................................................... 947ALTER LARGE OBJECT ................................................................................................................. 948ALTER MATERIALIZED VIEW ....................................................................................................... 949ALTER OPERATOR ........................................................................................................................ 951ALTER OPERATOR CLASS ............................................................................................................ 952ALTER OPERATOR FAMILY .......................................................................................................... 953ALTER ROLE ................................................................................................................................ 956ALTER RULE ................................................................................................................................ 959ALTER SCHEMA ........................................................................................................................... 960ALTER SEQUENCE ........................................................................................................................ 961ALTER SERVER ............................................................................................................................ 963ALTER TABLE .............................................................................................................................. 964ALTER TABLESPACE .................................................................................................................... 972ALTER TEXT SEARCH CONFIGURATION ...................................................................................... 973ALTER TEXT SEARCH DICTIONARY ............................................................................................. 975ALTER TEXT SEARCH PARSER ..................................................................................................... 977ALTER TEXT SEARCH TEMPLATE ................................................................................................ 978ALTER TRIGGER ........................................................................................................................... 979ALTER TYPE ................................................................................................................................. 980ALTER USER ................................................................................................................................. 983ALTER USER MAPPING ................................................................................................................. 984ALTER VIEW ................................................................................................................................ 985ANALYZE ..................................................................................................................................... 987BEGIN .......................................................................................................................................... 989CHECKPOINT ................................................................................................................................ 991CLOSE .......................................................................................................................................... 992CLUSTER ...................................................................................................................................... 993COMMENT .................................................................................................................................... 995COMMIT ....................................................................................................................................... 998COMMIT PREPARED ..................................................................................................................... 999COPY .......................................................................................................................................... 1000CREATE AGGREGATE ................................................................................................................. 1008

    Documentation PostgreSQL 9.3.22

    x

  • CREATE CAST ............................................................................................................................ 1011CREATE COLLATION .................................................................................................................. 1015CREATE CONVERSION ............................................................................................................... 1017CREATE DATABASE ................................................................................................................... 1019CREATE DOMAIN ....................................................................................................................... 1021CREATE EVENT TRIGGER ........................................................................................................... 1023CREATE EXTENSION .................................................................................................................. 1025CREATE FOREIGN DATA WRAPPER ............................................................................................ 1027CREATE FOREIGN TABLE ........................................................................................................... 1029CREATE FUNCTION .................................................................................................................... 1031CREATE GROUP .......................................................................................................................... 1037CREATE INDEX ........................................................................................................................... 1038CREATE LANGUAGE .................................................................................................................. 1043CREATE MATERIALIZED VIEW ................................................................................................... 1046CREATE OPERATOR ................................................................................................................... 1047CREATE OPERATOR CLASS ........................................................................................................ 1049CREATE OPERATOR FAMILY ...................................................................................................... 1052CREATE ROLE ............................................................................................................................ 1053CREATE RULE ............................................................................................................................ 1056CREATE SCHEMA ....................................................................................................................... 1058CREATE SEQUENCE ................................................................................................................... 1060CREATE SERVER ........................................................................................................................ 1063CREATE TABLE .......................................................................................................................... 1065CREATE TABLE AS ..................................................................................................................... 1076CREATE TABLESPACE ................................................................................................................ 1078CREATE TEXT SEARCH CONFIGURATION .................................................................................. 1079CREATE TEXT SEARCH DICTIONARY ......................................................................................... 1080CREATE TEXT SEARCH PARSER ................................................................................................. 1081CREATE TEXT SEARCH TEMPLATE ............................................................................................ 1082CREATE TRIGGER ...................................................................................................................... 1083CREATE TYPE ............................................................................................................................. 1087CREATE USER ............................................................................................................................ 1094CREATE USER MAPPING ............................................................................................................. 1095CREATE VIEW ............................................................................................................................ 1096DEALLOCATE ............................................................................................................................. 1099DECLARE ................................................................................................................................... 1100DELETE ...................................................................................................................................... 1103DISCARD .................................................................................................................................... 1105DO .............................................................................................................................................. 1106DROP AGGREGATE ..................................................................................................................... 1107DROP CAST ................................................................................................................................ 1108DROP COLLATION ...................................................................................................................... 1109DROP CONVERSION ................................................................................................................... 1110DROP DATABASE ....................................................................................................................... 1111DROP DOMAIN ........................................................................................................................... 1112DROP EXTENSION ...................................................................................................................... 1113DROP EVENT TRIGGER ............................................................................................................... 1114DROP FOREIGN DATA WRAPPER ................................................................................................ 1115DROP FOREIGN TABLE ............................................................................................................... 1116DROP FUNCTION ........................................................................................................................ 1117DROP GROUP .............................................................................................................................. 1118DROP INDEX ............................................................................................................................... 1119DROP LANGUAGE ...................................................................................................................... 1120DROP MATERIALIZED VIEW ....................................................................................................... 1121DROP OPERATOR ....................................................................................................................... 1122DROP OPERATOR CLASS ............................................................................................................ 1123DROP OPERATOR FAMILY .......................................................................................................... 1124DROP OWNED ............................................................................................................................. 1125DROP ROLE ................................................................................................................................ 1126DROP RULE ................................................................................................................................ 1127DROP SCHEMA ........................................................................................................................... 1128DROP SEQUENCE ........................................................................................................................ 1129DROP SERVER ............................................................................................................................ 1130

    Documentation PostgreSQL 9.3.22

    xi

  • DROP TABLE .............................................................................................................................. 1131DROP TABLESPACE .................................................................................................................... 1132DROP TEXT SEARCH CONFIGURATION ...................................................................................... 1133DROP TEXT SEARCH DICTIONARY ............................................................................................. 1134DROP TEXT SEARCH PARSER ..................................................................................................... 1135DROP TEXT SEARCH TEMPLATE ................................................................................................ 1136DROP TRIGGER ........................................................................................................................... 1137DROP TYPE ................................................................................................................................. 1138DROP USER ................................................................................................................................ 1139DROP USER MAPPING ................................................................................................................. 1140DROP VIEW ................................................................................................................................ 1141END ............................................................................................................................................ 1142EXECUTE ................................................................................................................................... 1143EXPLAIN .................................................................................................................................... 1144FETCH ........................................................................................................................................ 1148GRANT ....................................................................................................................................... 1151INSERT ....................................................................................................................................... 1156LISTEN ....................................................................................................................................... 1159LOAD ......................................................................................................................................... 1160LOCK .......................................................................................................................................... 1161MOVE ......................................................................................................................................... 1163NOTIFY ...................................................................................................................................... 1165PREPARE .................................................................................................................................... 1167PREPARE TRANSACTION ............................................................................................................ 1169REASSIGN OWNED ..................................................................................................................... 1171REFRESH MATERIALIZED VIEW ................................................................................................. 1172REINDEX .................................................................................................................................... 1173RELEASE SAVEPOINT ................................................................................................................. 1175RESET ........................................................................................................................................ 1176REVOKE ..................................................................................................................................... 1177ROLLBACK ................................................................................................................................. 1180ROLLBACK PREPARED ............................................................................................................... 1181ROLLBACK TO SAVEPOINT ........................................................................................................ 1182SAVEPOINT ................................................................................................................................ 1184SECURITY LABEL ....................................................................................................................... 1185SELECT ...................................................................................................................................... 1187SELECT INTO .............................................................................................................................. 1202SET ............................................................................................................................................. 1204SET CONSTRAINTS ..................................................................................................................... 1206SET ROLE ................................................................................................................................... 1207SET SESSION AUTHORIZATION .................................................................................................. 1209SET TRANSACTION .................................................................................................................... 1210SHOW ......................................................................................................................................... 1212START TRANSACTION ................................................................................................................ 1214TRUNCATE ................................................................................................................................. 1215UNLISTEN .................................................................................................................................. 1217UPDATE ...................................................................................................................................... 1218VACUUM .................................................................................................................................... 1221VALUES ...................................................................................................................................... 1223

    II. Applications client de PostgreSQL ...................................................................................................... 1225clusterdb ...................................................................................................................................... 1226createdb ....................................................................................................................................... 1228createlang ..................................................................................................................................... 1230createuser ..................................................................................................................................... 1232dropdb ......................................................................................................................................... 1235droplang ....................................................................................................................................... 1237dropuser .........................................................