Changeset 467
- Timestamp:
- 10/26/06 18:54:41 (2 years ago)
- Files:
-
- traduc/trunk/manuel/backup.xml (modified) (2 diffs)
- traduc/trunk/manuel/ddl.xml (modified) (9 diffs)
- traduc/trunk/manuel/query.xml (modified) (3 diffs)
- traduc/trunk/manuel/ref/alter_table.xml (modified) (2 diffs)
- traduc/trunk/manuel/ref/create_constraint.xml (modified) (4 diffs)
- traduc/trunk/manuel/ref/psql-ref.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
traduc/trunk/manuel/backup.xml
r465 r467 1189 1189 1190 1190 <sect2 id="backup-incremental-updated"> 1191 <title> Incrementally Updated Backups</title>1191 <title>Sauvegardes mises à jour par incrément</title> 1192 1192 1193 1193 <indexterm zone="backup"> 1194 <primary> incrementally updated backups</primary>1194 <primary>sauvegardes mises à jour par incrément</primary> 1195 1195 </indexterm> 1196 1196 1197 1197 <indexterm zone="backup"> 1198 <primary> change accumulation</primary>1198 <primary>accumulation des modifications</primary> 1199 1199 </indexterm> 1200 1200 1201 1201 <para> 1202 Restartable Recovery can also be utilised to offload the expense of 1203 taking periodic base backups from a main server, by instead backing 1204 up a Standby server's files. This concept is also generally known as 1205 incrementally updated backups, log change accumulation or more simply, 1206 change accumulation. 1207 </para> 1208 1209 <para> 1210 If we take a backup of the server files whilst a recovery is in progress, 1211 we will be able to restart the recovery from the last restart point. 1212 That backup now has many of the changes from previous WAL archive files, 1213 so this version is now an updated version of the original base backup. 1214 If we need to recover, it will be faster to recover from the 1215 incrementally updated backup than from the base backup. 1216 </para> 1217 1218 <para> 1219 To make use of this capability you will need to setup a Standby database 1220 on a second system, as described in <xref linkend="warm-standby"/>. By 1221 taking a backup of the Standby server while it is running you will 1222 have produced an incrementally updated backup. Once this configuration 1223 has been implemented you will no longer need to produce regular base 1224 backups of the Primary server: all base backups can be performed on the 1225 Standby server. If you wish to do this, it is not a requirement that you 1226 also implement the failover features of a Warm Standby configuration, 1227 though you may find it desirable to do both. 1202 La récupération après redémarrage peut aussi être utilisée pour décharger 1203 le serveur principal de la réalisation de sauvegardes de base périodiques. 1204 Le sauvegarde se fait sur le serveur d'attente. Ce concept est aussi connu 1205 sous le nom de sauvegardes mises à jour par incrément 1206 (<foreignphrase>incrementally updated backups</foreignphrase>, ou 1207 <foreignphrase>log change accumulation</foreignphrase> ou plus simplement 1208 <foreignphrase>change accumulation</foreignphrase>). 1209 </para> 1210 1211 <para> 1212 Si nous réalisons une sauvegarde des fichiers du serveur alors qu'une 1213 récupération est en cours, nous serons capable de relancer la récupération 1214 à partir du dernier point de redémarrage. Maintenant, cette sauvegarde 1215 a certaines modifications des fichiers d'archive WAL précédents, donc 1216 cette version est une version mise à jour de la sauvegarde de base 1217 originale. Si nous avons besoin de la récupérer, il sera plus rapide de le 1218 faire à partir de la sauvegarde mise à jour par incrément que par celle de 1219 la sauvegarde de base. 1220 </para> 1221 1222 <para> 1223 Pour utiliser cette possibilité, vous aurez besoin de configurer une base 1224 en attente sur un deuxième système comme décrit dans 1225 <xref linkend="warm-standby"/>. En réalisant une sauvegarde du serveur en 1226 attente alors qu'il est en cours d'exécution, vous aurez construit une 1227 sauvegarde mise à jour par incrément. Une fois ceci fait, vous n'aurez plus 1228 besoin de réaliser des sauvegardes de base régulièrement à partir du serveur 1229 principal : toutes les sauvegardes de base peuvent se faire sur le 1230 serveur en attente. Si vous souhaitez le faire, il n'est pas nécessaire 1231 d'implémenter les fonctionnalités de <foreignphrase>failover</foreignphrase> 1232 d'une configuration <foreignphrase>Warm Standby</foreignphrase> bien que 1233 vous puissiez faire les deux. 1228 1234 </para> 1229 1235 … … 1392 1398 1393 1399 <para> 1394 When running a Standby Server, backups can be performed on the Standby1395 r ather than the Primary, thereby offloading the expense of1396 taking periodic base backups. (See1400 Lors de l'exécution du serveur d'attente, les sauvegardes peuvent être 1401 réalisées sur ce serveur plutôt que sur le principal, ce qui décharge 1402 de la réalisation de sauvegarde basique (voir 1397 1403 <xref linkend="backup-incremental-updated"/>) 1398 1404 </para> traduc/trunk/manuel/ddl.xml
r465 r467 146 146 Malgré cela, il est habituel dans des fichiers de scripts SQL d'essayer 147 147 de supprimer chaque table avant de la créer, tout en ignorant tout message 148 d'erreur, so that the script works whether or not the table exists. 149 (If you like, you can use the <literal>DROP TABLE IF EXISTS</> variant 150 to avoid the error messages, but this is not standard SQL.) 148 d'erreur, pour que le script fonctionne que la table existe ou pas. (vous 149 pouvez aussi utiliser la variante <literal>DROP TABLE IF EXISTS</> pour 150 éviter les messages d'erreur mais cette variante ne fait pas partie du 151 standard SQL.) 151 152 </para> 152 153 … … 593 594 594 595 <para> 595 Une table a au mieux une clé primaire. ( There can be any number596 of unique and not-null constraints, which are functionally the same597 thing, but only one can be identified as the primary key.) La théorie des596 Une table a au mieux une clé primaire. (Le nombre de contraintes uniques 597 et non NULL, qui ont la même fonction, n'est pas limité mais seulement 598 un peut être identifié comme clé primaire.) La théorie des 598 599 bases de données relationnelles dit que chaque table doit avoir 599 600 une clé primaire. Cette règle n'est pas forcée par … … 1057 1058 1058 1059 Toutes ces actions sont réalisées en utilisant la commande <xref 1059 linkend="sql-altertable" endterm="sql-altertable-title"/> ,1060 which see for details beyond those given here.1060 linkend="sql-altertable" endterm="sql-altertable-title"/> (ce lien 1061 fournit beaucoup plus de détails sur cette commande). 1061 1062 </para> 1062 1063 … … 1090 1091 <tip> 1091 1092 <para> 1092 Adding a column with a default requires updating each row of the 1093 table (to store the new column value). However, if no default is 1094 specified, <productname>PostgreSQL</productname> is able to avoid 1095 the physical update. So if you intend to fill the column with 1096 mostly nondefault values, it's best to add the column with no default, 1097 insert the correct values using <command>UPDATE</>, and then add any 1098 desired default as described below. 1093 Ajouter une colonne avec une valeur par défaut nécessite la mise à jour 1094 de chaque ligne de la table pour stocker la valeur de la nouvelle colonne. 1095 Néanmoins, si aucune valeur par défaut n'est spécifiée, 1096 <productname>PostgreSQL</productname> peut éviter la mise à jour physique. 1097 Donc, si vous avez l'intention de remplir la colonne avec des valeurs qui 1098 ne sont principalement pas celles par défaut, il est préférable d'ajouter 1099 la colonne sans valeur par défaut, d'insérer les bonnes valeurs avec une 1100 commande <command>UPDATE</>, puis d'ajouter la valeur par défaut désirée 1101 comme décrit ci-dessus. 1099 1102 </para> 1100 1103 </tip> … … 1332 1335 1333 1336 <para> 1334 The special <quote>user</quote> name <literal>PUBLIC</literal> can1335 be used to grant a privilege to every user on the system. Also,1336 <quote>group</quote> roles can be set up to help manage privileges when1337 there are many users of a database — for details see1338 <xref linkend="user-manag"/>.1337 Le nom d'<quote>utilisateur</quote> spécial <literal>PUBLIC</literal> peut 1338 être utilisé pour donner un droit à chaque utilisateur du système. De plus, 1339 les rôles de type <quote>group</quote> peuvent être configurés pour aider à 1340 la gestion des droits quand il y a beaucoup d'utilisateurs dans une base 1341 — pour les détails, voir <xref linkend="user-manag"/>. 1339 1342 </para> 1340 1343 … … 1976 1979 1977 1980 <para> 1978 Table inheritance is typically established when the child table is1979 created, using the <literal>INHERITS</> clause of the1980 <xref linkend="sql-createtable" endterm="sql-createtable-title"> 1981 statement.1982 Alternatively, a table which is already defined in a compatible way can1983 have a new parent relationship added, using the <literal>INHERIT</literal>1984 variant of <xref linkend="sql-altertable" endterm="sql-altertable-title">.1985 To do this the new child table must already include columns with1986 the same names and types as the columns of the parent. It must also include1987 check constraints with the same names and check expressions as those of the1988 parent. Similarly an inheritance link can be removed from a child using the1989 <literal>NO INHERIT</literal> variant of <command>ALTER TABLE</>.1990 Dynamically adding and removing inheritance links like this can be useful1991 when the inheritance relationship is being used for table1992 partitioning (see <xreflinkend="ddl-partitioning">).1993 </para> 1994 1995 <para> 1996 One convenient way to create a compatible table that will later be made1997 a new child is to use the <literal>LIKE</literal> clause in <command>CREATE1998 TABLE</command>. This creates a new table with the same columns as1999 the source table. If there are any <literal>CHECK</literal>2000 constraints defined on the source table, the <literal>INCLUDING2001 CONSTRAINTS</literal> option to <literal>LIKE</literal> should be2002 specified, as the new child must have constraints matching the parent2003 to be consideredcompatible.1981 L'héritage d'une table se fait typiquement lors de la création de la table 1982 enfant en utilisant la clause <literal>INHERITS</> de l'instruction 1983 <xref linkend="sql-createtable" endterm="sql-createtable-title">. Sinon, 1984 une table déjà définie d'une façon compatible peut ajouter cette relation 1985 de famille en utilisantla clause <literal>INHERIT</literal> de 1986 <xref linkend="sql-altertable" endterm="sql-altertable-title">. Pour cela, 1987 la nouvelle table enfant doit déjà disposer des colonnes de même nom et de 1988 même type que les colonnes de la table parent. Elle doit aussi disposer 1989 des contraintes de vérification de même nom et de même expression que celles 1990 de la table parent. De la même façon, un lien d'héritage peut être supprimé 1991 à partir d'un enfant en utilisant la variante <literal>NO INHERIT</literal> 1992 d'<command>ALTER TABLE</>. Ajouter et supprimer dynamiquement des liens 1993 d'héritage de cette façon est utile quand cette relation d'héritage est 1994 utilisée pour le partitionnement des tables (voir <xref 1995 linkend="ddl-partitioning">). 1996 </para> 1997 1998 <para> 1999 Un moyen pratique de créer une table compatible pour devenir plus tard une 2000 table enfant est d'utiliser la clause <literal>LIKE</literal> dans 2001 <command>CREATE TABLE</command>. Ceci crée une nouvelle table avec les même 2002 colonnes que la table source. S'il existe des contraintes 2003 <literal>CHECK</literal> définies sur la table source, l'option 2004 <literal>INCLUDING CONSTRAINTS</literal> de <literal>LIKE</literal> devra 2005 être indiquée car le nouvel enfant doit avoir des contraintes correspondant 2006 à celles du parent pour être considéré comme compatible. 2004 2007 </para> 2005 2008 … … 2016 2019 <xref linkend="sql-altertable" endterm="sql-altertable-title"/> 2017 2020 propagera toute modification dans les définitions des colonnes et dans les 2018 contraintes de vérification aux héritages. Again, dropping2019 columns or constraints on parent tables is only possible when using2020 the <literal>CASCADE</literal> option. <command>ALTER TABLE</command>2021 contraintes de vérification aux héritages. De nouveau, supprimer des colonnes 2022 ou des contraintes sur des tables parents est seulement possible lors de 2023 l'utilisation de l'option <literal>CASCADE</literal>. <command>ALTER TABLE</command> 2021 2024 suit les mêmes règles pour l'assemblage des colonnes dupliquées et le rejet qui 2022 2025 s'appliquent lors de l'instruction <command>CREATE TABLE</command>. … … 2129 2132 <listitem> 2130 2133 <para> 2131 Query performance can be improved dramatically in certain situations,2132 particularly when most of the heavily accessed rows of the table are in a2133 single partition or a small number of partitions. The partitioning2134 substitutes for leading columns of indexes, reducing index size and2135 making it more likely that the heavily-used parts of the indexes2136 fit in memory.2134 Les performances des requêtes peuvent être significativement améliorées 2135 dans certaines situations, particulièrement lorsque la plupart des lignes 2136 les plus utilisées d'une table sont sur une seule partition ou sur un 2137 petit nombre de partitions. Le partitionnement se substitue aux colonnes 2138 principales des index, réduit la taille des index et fait en sorte que les 2139 parties les plus utilisées de l'index tiennent en mémoire. 2137 2140 </para> 2138 2141 </listitem> … … 2467 2470 2468 2471 <para> 2469 Partitioning can also be arranged using a <literal>UNION ALL</literal>2470 view:2472 Le partitionnement peut aussi se faire en utilisant une vue <literal>UNION 2473 ALL</literal> : 2471 2474 2472 2475 <programlisting> 2473 CREATE VIEW me asurementAS2474 SELECT * FROM measure ment_y2004m022475 UNION ALL SELECT * FROM measure ment_y2004m032476 CREATE VIEW mesure AS 2477 SELECT * FROM measure_a2004m02 2478 UNION ALL SELECT * FROM measure_a2004m03 2476 2479 ... 2477 UNION ALL SELECT * FROM measure ment_y2005m112478 UNION ALL SELECT * FROM measure ment_y2005m122479 UNION ALL SELECT * FROM measure ment_y2006m01;2480 UNION ALL SELECT * FROM measure_a2005m11 2481 UNION ALL SELECT * FROM measure_a2005m12 2482 UNION ALL SELECT * FROM measure_a2006m01; 2480 2483 </programlisting> 2481 2484 2482 However, the need to2483 recreate the view adds an extra step to adding and dropping2484 individual partitions of the data set.2485 Néanmoins, le besoin de recréer la vue ajoute une étape supplémentaire à 2486 l'ajout et à la suppression de partitions individuelles de l'ensemble 2487 de données. 2485 2488 </para> 2486 2489 </sect2> traduc/trunk/manuel/query.xml
r465 r467 39 39 40 40 Ceci crée les scripts et compile les fichiers C contenant des fonctions et 41 types définis par l'utilisateur. ( If you installed a pre-packaged version of42 <productname>PostgreSQL</productname> rather than building from source,43 look for a directory named <filename>tutorial</filename> within the44 <productname>PostgreSQL</productname> documentation. The <quote>make</quote>45 part should already have been done for you.) Puis, pour lancer le tutoriel, faites ce qui46 suit :41 types définis par l'utilisateur. (Si vous avez installé une version binaire 42 de <productname>PostgreSQL</productname> plutôt que de la construire à 43 partir des sources, cherchez un répertoire nommé <filename>tutorial</filename> 44 dans la documentation de <productname>PostgreSQL</productname>. Le 45 <quote>make</quote> a certainement dû être fait pour vous.) Puis, pour lancer 46 le tutoriel, faites ce qui suit : 47 47 48 48 <screen><prompt>$</prompt> <userinput>cd … … 494 494 <para> 495 495 Puisque toutes les colonnes ont un nom différent, l'analyseur a 496 automatiquement trouvé à quelle table elles appartiennent. If there497 were duplicate column names in the two tables you'd need to498 <firstterm>qualif y</firstterm> the column names to show which one you499 meant, as in:496 automatiquement trouvé à quelle table elles appartiennent. Si des noms 497 de colonnes sont communs entre les deux tables, vous aurez besoin de 498 <firstterm>qualifier</firstterm> les noms des colonnes pour préciser 499 celle dont vous parler. Par exemple : 500 500 501 501 <programlisting>SELECT temps.ville, temps.t_basse, temps.t_haute, … … 504 504 WHERE villes.nom = temps.ville;</programlisting> 505 505 506 It is widely considered good style to qualify all column names 507 in a join query, so that the query won't fail if a duplicate 508 column name is later added to one of the tables. 506 La qualification des noms de colonnes dans une requête de jointure est 507 fréquemment considérée comme une bonne pratique. Cela évite l'échec de la 508 requête si un nom de colonne dupliqué est ajouté plus tard dans une des 509 tables. 509 510 </para> 510 511 traduc/trunk/manuel/ref/alter_table.xml
r465 r467 298 298 <para> 299 299 Cette forme ajoute la table cible comme nouvel enfant à la table parent 300 indiquée. Subsequently, queries against the parent will include records301 of the target table. To be added as a child, the target table must302 already contain all the same columns as the parent (it could have303 additional columns, too). Les colonnes doivent304 avoir des types qui correspondent, et s'il y a des contraintes300 indiquée. En conséquence, les requêtes concernant le parent ajouteront 301 les enregistrements de la table cible. Pour être ajoutée en tant 302 qu'enfant, la table cible doit déjà contenir toutes les colonnes de la 303 table parent (elle peut avoir des colonnes supplémentaires). Les colonnes 304 doivent avoir des types qui correspondent, et s'il y a des contraintes 305 305 <literal>NOT NULL</literal> défini pour le parent, alors elles doivent 306 306 aussi avoir les contraintes <literal>NOT NULL</literal> pour l'enfant. … … 391 391 Pour modifier le schéma d'une table, le droit <literal>CREATE</literal> sur 392 392 le nouveau schéma est requis. 393 To add the table as a new child of a parent table, you must own the394 parent table as well.393 Pour ajouter la table en tant que nouvel enfant d'une table parent, vous devez 394 aussi être propriétaire de la table parent. 395 395 Pour modifier le propriétaire, il est nécessaire d'être un membre direct ou 396 396 indirect du nouveau rôle et ce dernier doit avoir le droit traduc/trunk/manuel/ref/create_constraint.xml
r465 r467 51 51 <listitem> 52 52 <para> 53 Le nom du déclencheur sur contrainte. The actual name of the 54 created trigger will be of the form 55 <literal>RI_ConstraintTrigger_0000</literal> (where 0000 is some number 56 assigned by the server). 57 Use this assigned name when dropping the trigger. 53 Le nom du déclencheur sur contrainte. Le nom réel du déclencheur créé 54 sera de la forme <literal>RI_ConstraintTrigger_0000</literal> (où 0000 55 correspond à un nombre affecté par le serveur). 56 Utilisez ce nom lors de la suppression du déclencheur. 58 57 </para> 59 58 </listitem> … … 64 63 <listitem> 65 64 <para> 66 One of <literal>INSERT</literal>, <literal>UPDATE</literal>, or 67 <literal>DELETE</literal>; this specifies the event that will fire the 68 trigger. Multiple events can be specified using <literal>OR</literal>. 65 Une valeur parmi <literal>INSERT</literal>, <literal>UPDATE</literal> 66 ou <literal>DELETE</literal> ; ceci indique l'événement qui 67 sera la cause de l'exécution du déclencheur. Plusieurs événements 68 peuvent être indiqués en utilisant le mot clé <literal>OR</literal>. 69 69 </para> 70 70 </listitem> … … 75 75 <listitem> 76 76 <para> 77 Le nom (éventuellement qualifié du nom du schéma) de la table dans laquelle77 Le nom (éventuellement qualifié du nom du schéma) de la table dans laquelle 78 78 se déroulent les événements déclenchant. 79 79 </para> … … 81 81 </varlistentry> 82 82 83 <varlistentry> 84 <term><replaceable class="PARAMETER">referenced_table_name</replaceable></term> 85 <listitem> 86 <para> 87 The (possibly schema-qualified) name of the table referenced by the 88 constraint. Used by foreign key constraints triggers. 89 </para> 90 </listitem> 91 </varlistentry> 83 <varlistentry> 84 <term><replaceable class="PARAMETER">table_référencée</replaceable></term> 85 <listitem> 86 <para> 87 Le nom (éventuellement qualifié du nom du schéma) de la table référencé 88 par la contrainte. Utilisé par les déclencheurs des contraintes de clé 89 étrangère. 90 </para> 91 </listitem> 92 </varlistentry> 92 93 93 <varlistentry> 94 <term><literal>DEFERRABLE</literal></term> 95 <term><literal>NOT DEFERRABLE</literal></term> 96 <term><literal>INITIALLY IMMEDIATE</literal></term> 97 <term><literal>INITIALLY DEFERRED</literal></term> 98 <listitem> 99 <para> 100 See the <xref linkend="SQL-CREATETABLE" endterm="SQL-CREATETABLE-TITLE"/> 101 documentation for details of these constraint options. 102 </para> 103 </listitem> 104 </varlistentry> 94 <varlistentry> 95 <term><literal>DEFERRABLE</literal></term> 96 <term><literal>NOT DEFERRABLE</literal></term> 97 <term><literal>INITIALLY IMMEDIATE</literal></term> 98 <term><literal>INITIALLY DEFERRED</literal></term> 99 <listitem> 100 <para> 101 Voir la documentation de <xref linkend="SQL-CREATETABLE" 102 endterm="SQL-CREATETABLE-TITLE"/> pour les détails sur ces options de 103 contraintes. 104 </para> 105 </listitem> 106 </varlistentry> 105 107 106 <varlistentry>107 <term><replaceable class="PARAMETER">funcname</replaceable>(<replaceable class="PARAMETER">args</replaceable>)</term>108 <listitem>109 <para>110 The function to call as part of the trigger processing. See<xref111 linkend="SQL-CREATETRIGGER" endterm="SQL-CREATETRIGGER-TITLE"/> for112 details.113 </para>114 </listitem>115 </varlistentry>116 </variablelist>108 <varlistentry> 109 <term><replaceable class="PARAMETER">fonction</replaceable>(<replaceable class="PARAMETER">arguments</replaceable>)</term> 110 <listitem> 111 <para> 112 La fonction à appeler lors du traitement du déclencheur. Voir <xref 113 linkend="SQL-CREATETRIGGER" endterm="SQL-CREATETRIGGER-TITLE"/> pour 114 les détails. 115 </para> 116 </listitem> 117 </varlistentry> 118 </variablelist> 117 119 </refsect1> 118 120 119 <refsect1> 120 <title>Compatibility</title> 121 <para> 122 <command>CREATE CONTRAINT TRIGGER</command> is a 123 <productname>PostgreSQL</productname> extension of the <acronym>SQL</acronym> 124 standard. 125 </para> 126 </refsect1> 121 <refsect1> 122 <title>Compatibilité</title> 123 <para> 124 <command>CREATE CONTRAINT TRIGGER</command> est une extension 125 <productname>PostgreSQL</productname> du standard <acronym>SQL</acronym>. 126 </para> 127 </refsect1> 127 128 128 </refentry>129 </refentry> traduc/trunk/manuel/ref/psql-ref.xml
r465 r467 1911 1911 1912 1912 <para> 1913 Les différentes commandes <literal>\d</literal> acceptent un paramètre <replaceable1914 class="parameter">modèle</replaceable> pour spécifier le(s) nom(s) d'objet à1915 afficher. In the simplest case, a pattern1916 is just the exact name of the object. The characters within a1917 pattern are normally folded to lower case, just as in SQL names;1918 for example, <literal>\dt FOO</literal> will display the table named1919 <literal>foo</literal>. As in SQL names, placing double quotes around1920 a pattern stops folding to lower case. Should you need to include1921 an actual double quote character in a pattern, write it as a pair1922 of double quotes within a double-quote sequence; again this is in1923 accord with the rules for SQL quoted identifiers. For example,1924 <literal> \dt "FOO""BAR"</literal> will display the table named1925 <literal>FOO"BAR</literal> (not <literal>foo"bar</literal>). Unlike the normal1926 rules for SQL names, you can put double quotes around just part1927 of a pattern, for instance <literal>\dt FOO"FOO"BAR</literal> will display1928 the table named<literal>fooFOObar</literal>.1913 Les différentes commandes <literal>\d</literal> acceptent un paramètre 1914 <replaceable class="parameter">modèle</replaceable> pour spécifier le(s) 1915 nom(s) d'objet à afficher. Dans le cas le plus simple, un modèle est 1916 seulement le nom exact de l'objet. Les caractères à l'intérieur du 1917 modèle sont normalement mis en minuscule comme pour les noms SQL ; 1918 par exemple, <literal>\dt FOO</literal> affichera la table nommée 1919 <literal>foo</literal>. Comme pour les noms SQL, placer des guillemets 1920 doubles autour d'un modèle empêchera la mise en minuscule. Si vous devez 1921 inclure un guillemet double dans un modèle, écrivez-le en double en 1922 accord avec les règles sur les identifiants SQL. Par exemple, 1923 <literal>\dt "FOO""BAR"</literal> affichera la table nommée 1924 <literal>FOO"BAR</literal> (et non pas <literal>foo"bar</literal>). 1925 Contrairement aux règles normales pour les noms SQL, vous pouvez placer 1926 des guillemets doubles simplement autour d'une partie d'un modèle, 1927 par exemple <literal>\dt FOO"FOO"BAR</literal> affichera la table nommée 1928 <literal>fooFOObar</literal>. 1929 1929 </para> 1930 1930 1931 1931 <para> 1932 Within a pattern, <literal>*</literal> matches any sequence of characters1933 (including no characters) and <literal>?</literal> matches any single character.1934 (This notation is comparable to Unix shell file name patterns.)1935 For example, <literal>\dt int*</literal> displays all tables whose names1936 begin with <literal>int</literal>. But within double quotes, <literal>*</literal>1937 and <literal>?</literal> lose these special meanings and are just matched1938 literally.1932 À l'intérieur d'un modèle, <literal>*</literal> correspond à toute 1933 séquence de caractères (et aussi à aucun) alors que <literal>?</literal> ne 1934 correspond qu'à un seul caractère. (Cette notation est comparable à celle des 1935 modèles de nom de fichier Unix.) Par exemple, <literal>\dt int*</literal> 1936 affiche les tables dont le nom commence avec <literal>int</literal>. Mais à 1937 l'intérieur de guillemets doubles, <literal>*</literal> et <literal>?</literal> 1938 perdent leurs significations spéciales et sont donc traités directement. 1939 1939 </para> 1940 1940 1941 1941 <para> 1942 A pattern that contains a dot (<literal>.</literal>) is interpreted as a schema1943 name pattern followed by an object name pattern. For example,1944 <literal>\dt foo*.bar*</literal> displays all tables whose table name1945 starts with <literal>bar</literal> that are in schemas whose schema name1946 starts with <literal>foo</literal>. When no dot appears, then the pattern1947 matches only objects that are visible in the current schema search path.1948 Again, a dot within double quotes loses its special meaning and is matched1949 literally.1942 Un modèle qui contient un point (<literal>.</literal>) est interprété comme 1943 le modèle d'un nom de schéma suivi par celui d'un nom d'objet. Par exemple, 1944 <literal>\dt foo*.bar*</literal> affiche toutes les tables dont le nom 1945 commence avec <literal>bar</literal> et qui sont dans des schémas dont le 1946 nom commence avec <literal>foo</literal>. Sans point, le modèle correspond 1947 seulement avec les objets qui sont visibles dans le chemin de recherche 1948 actuel des schémas. De nouveau, un point dans des guillemets doubles 1949 perd sa signification spéciale et est traité directement. 1950 1950 </para> 1951 1951 1952 1952 <para> 1953 Advanced users can use regular-expression notations such as character1954 classes, for example <literal>[0-9]</literal> to match any digit. All regular1955 expression special characters work as specified in1956 <xref linkend="functions-posix-regexp">, except for <literal>.</literal> which1957 is taken as a separator as mentioned above, <literal>*</literal> which is1958 translated to the regular-expression notation <literal>.*</literal>, and1959 <literal>?</literal> which is translated to <literal>.</literal>. You can emulate1960 these pattern characters at need by writing1961 <literal>?</literal> for <literal>.</literal>,1962 <literal>(<replaceable class="parameter">R</replaceable>+|)</literal> for1963 <literal><replaceable class="parameter">R</replaceable>*</literal> , or1964 <literal>(<replaceable class="parameter">R</replaceable>|)</literal> for1953 Les utilisateurs avancés peuvent utiliser des expressions rationnelles comme 1954 par exemple les classes de caractère (<literal>[0-9]</literal> pour tout 1955 chiffre). Tous les caractères spéciaux d'expression rationnelle fonctionnent 1956 de la façon indiquée dans <xref linkend="functions-posix-regexp">, sauf pour 1957 le <literal>.</literal> qui est pris comme séparateur (voir ci-dessus), 1958 l'étoile (<literal>*</literal>) qui est transformée en l'expression 1959 rationnelle <literal>.*</literal> et <literal>?</literal> qui est transformée 1960 en <literal>.</literal>. Vous pouvez émuler ces caractères si besoin en 1961 écrivant <literal>?</literal> pour <literal>.</literal>, 1962 <literal>(<replaceable class="parameter">R</replaceable>+|)</literal> pour 1963 <literal><replaceable class="parameter">R</replaceable>*</literal> et 1964 <literal>(<replaceable class="parameter">R</replaceable>|)</literal> pour 1965 1965 <literal><replaceable class="parameter">R</replaceable>?</literal>. 1966 Remember that the pattern must match the whole name, unlike the usual 1967 interpretation of regular expressions; write <literal>*</literal> at the beginning 1968 and/or end if you don't wish the pattern to be anchored. 1969 Note that within double quotes, all regular expression special characters 1970 lose their special meanings and are matched literally. Also, the regular 1971 expression special characters are matched literally in operator name 1972 patterns (i.e., the argument of <literal>\do</literal>). 1966 Rappelez-vous que le modèle doit correspondre au nom entier contrairement à 1967 l'interprétation habituelle des expressions rationnelles ; écrire 1968 <literal>*</literal> au début et/ou à la fin si vous ne souhaitez pas 1969 bloquer le modèle. Notez qu'à l'intérieur de guillemets doubles, tous les 1970 caractères spéciaux des expressions rationnelles perdent leur signification 1971 spéciale et sont traités directement. De plus, ces caractères sont traités 1972 littéralement dans les modèles des noms d'opérateurs (par exemple 1973 pour l'argument de <literal>\do</literal>). 1973 1974 </para> 1974 1975

