Vous êtes sur la page 1sur 32

La FAQ de PostgreSQL

Date de publication : 2005 Dernire mise jour : 8 juillet 2009

Cette FAQ a t ralise partir des contributions des membres du forum PostgreSQL de www.developpez.com. Si vous dsirez contribuer l'amlioration de cette FAQ, veuillez contacter le responsable.

Ont contribu cette FAQ :

Developpez.com - fxp17 - KrysKool - Google.be - Michel Blavin - Damien Griessinger (HpAlpha) (Site perso) - Communaut PostgreSQL -

La FAQ de PostgreSQL

1. 2. 3. 4.

Gnralits (3) ........................................................................................................................................................................... 4 Gnralits sur PostgreSQL (4) .................................................................................................................................................5 Fonctionnalits (4) ..................................................................................................................................................................... 7 Syntaxe SQL et structure de donnes (23) ............................................................................................................................... 9 4.1. Instructions SQL particulires (6) .................................................................................................................................. 10 4.2. Structure du systme (7) .................................................................................................................................................13 4.3. Nombres (3) .................................................................................................................................................................... 16 4.4. Chaines de caractres (1) ............................................................................................................................................... 18 4.5. Dates et heures (3) ..........................................................................................................................................................19 4.6. Procdures stockes (1) .................................................................................................................................................. 20 4.7. Exemples d'utilisations (2) ............................................................................................................................................. 21 5. Administration (15) ..................................................................................................................................................................23 5.1. Gnral (6) ...................................................................................................................................................................... 24 5.2. Utilisateurs et privilges (3) ........................................................................................................................................... 26 5.3. Migration, import et export de donnes (2) ................................................................................................................... 27 5.4. Sauvegarde et restauration (3) ........................................................................................................................................28 5.5. Performances (1) .............................................................................................................................................................29 6. Programmation (2) ...................................................................................................................................................................30 6.1. Les chaines de connexions (1) ....................................................................................................................................... 31 6.2. PL/PGSQL (1) ................................................................................................................................................................ 32

-3Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Gnralits Guide de bon usage de la FAQ et du Forum


Auteurs : Damien Griessinger (HpAlpha) , Lorsque vous vous trouvez devant un problme, voil la marche suivre : * Chercher dans la doc de PostgreSQL * Chercher dans la FAQ * Chercher sur Google * Faire une recherche sur le forum concern. * Si vous n'avez toujours pas trouv de rponse votre question : vous pouvez, aprs avoir lu les Rgles du forum poster une question prcise avec un titre clair et vous enrichirez ainsi la base de connaissances.

lien : lien : lien :

Documentation en ligne de PostgreSQL Documentation en ligne de PostgreSQL Forum PostgreSQL

Comment participer l'amlioration de la FAQ ?


Auteurs : Damien Griessinger (HpAlpha) , Le plus simple est de prendre contact avec le responsable de la FAQ. Actuellement le responsable de la FAQ est HpAlpha.

Remerciements
Auteurs : Developpez.com , Merci tous ceux qui ont particip la rdaction de cette FAQ. Remerciements galement aux utilisateurs qui permettent, en rpondant aux questions, d'accrotre la base de connaissance qu'est la FAQ PostgreSQL. Enfin, je tiens remercier l'norme travail de NoNo qui produit les outils facilitant grandement la mise jour et la cration des FAQ. Spciale ddicace la communaut PostgreSQL et tout particulirement le groupe francophone.

lien : lien :

Site officiel Site de la communaut Francophone

-4Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Gnralits sur PostgreSQL Qu'est-ce que PostgreSQL ?


Auteurs : Damien Griessinger (HpAlpha) , PostgreSQL est un Systme de Gestion de Base de Donnes Relationnelles Objet (SGBDRO) (ou encore ORDBMS en anglais) bas sur POSTGRES dvelopp l'universit de Californie au dpartement des sciences informatiques de Berkeley. POSTGRES a lanc de nombreux concepts rendus ensuite disponibles dans plusieurs systmes de bases de donnes commerciales. PostgreSQL est un descendant open-source du code original de Berkeley. Il supporte une grande partie du standard SQL:2003 tout en offrant de nombreuses fonctionnalits modernes : * requtes complexes ; * cls trangres ; * dclencheurs (triggers) ; * vues ; * intgrit des transactions ; * contrle des accs concurrents (MVCC ou multiversion concurrency control). De plus, PostgreSQL peut tre tendu de plusieurs faons par l'utilisateur, par exemple en ajoutant de nouveaux * types de donnes ; * fonctions ; * oprateurs ; * fonctions d'agrgat ; * mthodes d'indexage ; * langages de procdure. Et grce sa licence librale, PostgreSQL peut tre utilis, modifi et distribu par tout le monde gratuitement quelque soit le but vis, qu'il soit priv, commercial ou acadmique.

lien :

http://www.postgresql.org

Sur quelles plateformes fonctionne PostgreSQL ?


Auteurs : Damien Griessinger (HpAlpha) , PostgreSQL fonctionne sous: * Linux * Solaris * SunOS * HPUX * AIX * Irix * Digital Unix * BSDi * NetBSD * FreeBSD * SCO unix * NEXTSTEP * Unixware et toutes sortes d'unix * Windows NT/2000/XP ( partir de la version 8) Cette liste n'est pas exhaustive. Les sources et les "binaires" sont disponibles

-5Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Dois-je payer une licence PostgreSQL ?


Auteurs : Communaut PostgreSQL , PostgreSQL est distribu sous la licence suivante : PostgreSQL Data Base Management System Portions copyright (c) 1996-2004, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 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 granted, 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, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF 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 WARRANTIES 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. La licence ci-dessus est la licence BSD, une licence open-source classique.

O puis-je obtenir du support ?


Auteurs : Communaut PostgreSQL , Damien Griessinger (HpAlpha) , Sur developpez ! Tutoriels, articles, et de nombreuses personnes pretent vous aider sur le forum. La liste de diffusion principale : pgsql-general@PostgreSQL.org La liste de diffusion des bogues : pgsql-bugs-request@PostgreSQL.org La liste de diffusion pour les dveloppeurs : pgsql-hackers-request@PostgreSQL.org Le recueil de la liste : pgsql-general-digest-request@PostgreSQL.org Les recueils sont envoys aux membres de cette liste ds que la liste principale a reu 30 Ko de messages. Vous pouvez trouver d'autres listes et informations sur PostgreSQL sur le site web de PostgreSQL : http://www.PostgreSQL.org Il y a aussi un canal IRC sur Freenode et EFNet, le canal #PostgreSQL. Vous pouvez utiliser la commande Unix irc -c '#PostgreSQL' "$USER" irc.phoenix.net ou irc -c '#PostgreSQL' "$USER" irc.freenode.net. Une liste de socits pouvant fournir un support commercial est disponible sur companies.php. http://techdocs.postgresql.org/

lien : lien :

http://www.developpez.com Le forum de developpez

-6Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Fonctionnalits Quels sont les fonctionnalits de PostgreSQL ?


Auteurs : Damien Griessinger (HpAlpha) , PostgreSQL possde les fonctionnalits suivantes : * Clefs trangres * Sous-requtes * triggers * procedures stockes * vues * transactions * curseurs * contrle des accs concurrents (MVCC ou multiversion concurrency control)

Quels sont les limites de PostgreSQL ?


Auteurs : Communaut PostgreSQL , Les limites sont : * Taille maximum pour une base de donnes illimite (il existe des bases de 32 To) * Taille maximum pour une table 32 To * Taille maximum pour une ligne 1,6 To * Taille maximum pour un champ 1 Go * Nombre maximum de lignes dans une table illimit * Nombre maximum de colonnes dans une table 250-1600, selon le type de colonnes * Nombre maximum d'index sur une table illimit Bien sr, ces valeurs ne sont pas vraiment illimite, elles sont limites par l'espace disque disponible, ainsi que par l'espace de mmoire et de swap. Les performances peuvent se dgrader si ces valeurs sont inhabituellement grandes. La taille maximum des tables (32 To) ne ncessite pas que le systme d'exploitation supporte les grands fichiers. Les grandes tables sont stockes sous forme de fichiers multiples de 1 Go, donc les limites de taille du systme de fichier ne sont pas importantes. La taille maximum des tables et le nombre maximum de colonnes peuvent tre quadripls, si la taille des blocs par dfaut est augmente 32 Ko.

Quels types de jointures sont supportes ?


Auteurs : Damien Griessinger (HpAlpha) , table1,table2 table1 [ INNER ] JOIN table2 table1 LEFT [ OUTER ] JOIN table2 table1 RIGHT [ OUTER ] JOIN table2 table1 FULL [ OUTER ] JOIN table2

-7Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

table1 CROSS JOIN table2

Peut on faire du GIS avec PostgreSQL ?


Auteurs : Damien Griessinger (HpAlpha) , il existe une contribution : PostGIS.

lien : lien : lien :

http://postgis.refractions.net/ http://techer.pascal.free.fr/postgis/ http://www.01map.com/download/

-8Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Syntaxe SQL et structure de donnes

-9Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Syntaxe SQL et structure de donnes > Instructions SQL particulires Comment ne retourner que les n premires lignes renvoyes par une requte SQL ?
Auteurs : Damien Griessinger (HpAlpha) , L'instruction LIMIT n place en fin de requte permet de ne renvoyer que les n premires lignes :

SELECT * FROM matable LIMIT 100

--> On obtient en retour que les 100 premiers enregistrements.

Comment slectionner du m-ime au n-ime enregistrements ?


Auteurs : Damien Griessinger (HpAlpha) , L'instruction LIMIT n place en fin de requte permet de ne renvoyer que les n premires lignes, L'instruction OFFSET m permet quand elle de spcifier partir de quel enregistrement commencer.

SELECT * FROM matable LIMIT 100 OFFSET 10

--> On obtient en retour que les 100 enregistrements partir du 10me.

Comment rcuprer le dernier enregistrement d'une requte ?


Auteurs : Damien Griessinger (HpAlpha) , Une possibilite serait de faire comme ceci :

SELECT * FROM matable ORDER BY maclefprimaire DESC LIMIT 1;

Est-il possible de faire un INSERT partir du rsultat d'un SELECT ?


Auteurs : Damien Griessinger (HpAlpha) , Bien sr que l'on peut, et heureusement ! Considrons 3 tables matable1 : id int2, nom varchar(32); matable2 identique matable1 matable 3 : idauto serial idautre int2 nom varchar(32) prenom varchar(32) 1er cas : matable1 >> matable2

INSERT INTO matable2 SELECT * FROM matable1;

- 10 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

2eme cas : matable2 >> matable3 quand id>3

INSERT INTO matable3 (idautre,nom) SELECT id, nom FROM matable2 WHERE id>3

On peut aller beaucoup plus loin, en utilisant les jointures, sous requete, etc.. il faut juste mettre devant INSERT INTO.... et penser aux champs de destination.

Comment utiliser la valeur par dfaut d'un champ ?


Auteurs : Damien Griessinger (HpAlpha) , Supposons que l'on ai une table comme ceci :

CREATE TABLE a ( champ1 int2 DEFAULT 99, champ2 int2 DEFAULT 33 );

On insert des valeurs :

INSERT INTO a VALUES (10,72); SELECT * FROM a; -champ1 champ2 --------------------10 72

On souhaite maintenant inserrer les valeurs par dfaut, pour cela on utilise le mot clef default :

INSERT INTO a VALUES (default,default); SELECT * FROM a; -champ1 champ2 --------------------10 72 -99 33

De la mme facon, on peut remettre toutes les valeurs de la table la valeur par dfaut :

UPDATE a SET champ1 = default, champ2 = default; SELECT * FROM a; -champ1 champ2 --------------------99 33 -99 33

Comment crer une constante ?


Auteurs : Damien Griessinger (HpAlpha) , PostgreSQL ne dispose pas de cette fonctionnalit, cependant il existe une parade : utiliser une fonction

- 11 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

CREATE OR REPLACE FUNCTION "maconstante" () RETURNS integer AS $body$ /* retourne la constante 45445 */ SELECT 45445; $body$ LANGUAGE 'sql' IMMUTABLE CALLED ON NULL INPUT SECURITY INVOKER;

La fonction est IMMUTABLE car elle renverra toujours le mme rsultat Cette pseudo constante peut etre utilise comme une valeur :

INSERT INTO matable (unchamp,uautrechamp) VALUES (152,maconstante());

- 12 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Syntaxe SQL et structure de donnes > Structure du systme Comment lister toutes les tables de ma base ?
Auteurs : Google.be , Damien Griessinger (HpAlpha) ,
SELECT tablename FROM pg_tables WHERE tablename !~ '^pg_'; ou SELECT relname FROM pg_class WHERE relname !~ '^pg_';

Dans l'outil psql, on utilise la commande \dt

Comment lister les tables prsentes dans un schma donn ?


Auteurs : Damien Griessinger (HpAlpha) ,
SELECT tablename FROM pg_tables WHERE schemaname = 'monschema'; ou SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON (c.relnamespace = n.oid) WHERE n.nspname = 'monschema'::text AND c.relkind = 'r'::text;

Comment savoir si une fonction existe dans postgresql ?


Auteurs : Damien Griessinger (HpAlpha) , En regardant la table systeme pg_proc :

SELECT * FROM pg_proc;

On pauffine un peu, comme par exemple :

SELECT COUNT(*)>0 AS present FROM pg_proc WHERE proname='lafonctionquejerecherche'::text;

Cette requete retourne un booleen sur l'existence de la fonction.

Qu'est-ce qu'un index R-tree ?


Auteurs : Communaut PostgreSQL , Un index R-tree est utilis pour l'indexation des donnes spatiales. Un index de hachage ne permet pas les recherches par plage. Un index B-tree peut seulement faire des recherches sur une dimension. Les index R-tree peuvent traiter des donnes multi-dimensionnelles. Par exemple, si un index R-tree peut tre construit sur un attribut de type point, le systme peut plus efficacement grer les requtes du type "Slection de tous les points d'un rectangle". L'article de rfrence qui dcrit le systme R-tree original est : Guttman, A. "R-trees: A Dynamic Index Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57. Vous pouvez galement trouver ce papier dans le livre de Stonebraker "Readings in Database Systems". Les index R-tree intgrs peuvent prendre en charge les polygnes et les botes.
- 13 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

En thorie, les R-trees peuvent tre tendus un plus grand nombre de dimensions. En pratique, l'extension des R-trees requiert pas mal de travail et nous n'avons pour le moment aucune documentation sur la faon de procder.

Comment changer le type d'un champ ?


Auteurs : Damien Griessinger (HpAlpha) , Communaut PostgreSQL , Pour changer le type de donnes d'une colonne, d'une version antrieur 7.3 :

BEGIN; ALTER TABLE table ADD COLUMN nouvelle_colonne nouveau_type_de_donnees; UPDATE table SET nouvelle_colonne = CAST(ancienne_colonne AS nouveau_type_de_donnees); ALTER TABLE table DROP COLUMN ancienne_colonne; COMMIT

; Pour les version suprieur ou gale 7.3 :

ALTER TABLE table ALTER la_colonne TYPE nouveau_type_de_donnees;

Aprs on peut faire un VACUUM FULL table pour rcuprer l'espace disque utilis par les lignes expires.

Comment puis-je connatre la version de PostgreSQL ?


Auteurs : Communaut PostgreSQL , Avec une requte SQL :

SELECT version();

Comment supprimer ma base de donnes ?


Auteurs : KrysKool ,
DROP DATABASE mabase;

Si ce message d'erreur apparait:

Erreur SQL : ERROR: cannot drop the currently open database In statement: DROP DATABASE "mabase"

La base est actuellement utilise, il faut dconnecter tous les utilisateurs et se connecter sur la base template1.

- 14 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Aprs on peut dropper la base.

- 15 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Syntaxe SQL et structure de donnes > Nombres Comment grer la type SERIAL ? numro auto ?
Auteurs : Damien Griessinger (HpAlpha) , Il existe un article sur ce sujet : http://dgriessinger.developpez.com/postgresql/sequences/

Comment faire un INSERT quand j'ai un champ SERIAL ?


Auteurs : Damien Griessinger (HpAlpha) , Considerons la table :

CREATE TABLE test ( idauto SERIAL, monchamp TEXT, CONSTRAINT pk_idauto PRIMARY KEY (idauto));

Pour faire un INSERT il suffit d'utiliser le mot clef DEFAULT :

INSERT INTO test VALUES (default,'mon texte');

DEFAULT appelera automatiquement la valeur par defaut, dans le cas d'un SERIAL, elle appelera la fonction nextval

Comment crer une squence sur une table dj cre ?


Auteurs : Damien Griessinger (HpAlpha) , On a une table (ma_table) qui possede une clef primaire de type INT4 (mon_id)

SELECT * FROM ma_table; mon_id -------1 2 4 5 9

Pour gerer les id avec une sequence, il faut recuperer la valeur maximum des id de la table

SELECT max(mon_id) FROM ma_table; 9

On cre la sequence

CREATE SEQUENCE ma_sequence;

et on modifie la prochaine valeur a generer (9+1) donc 10

ALTER SEQUENCE ma_sequence RESTART WITH 10;

- 16 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

ensuite on indique que la valeur par defaut de mon_id est la sequence :

ALTER TABLE ma_table ALTER COLUMN mon_id SET DEFAULT nextval('ma_sequence');

nota: par convention, la sequence devrait s'appeler ma_table_mon_id_seq

- 17 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Syntaxe SQL et structure de donnes > Chaines de caractres Comment concatner 2 chanes de caractres ?
Auteurs : Damien Griessinger (HpAlpha) , la concatenation se fait avec l'operateur double pipe ( || ), au clavier ALT GR + 6 :

SELECT 'debut de mon texte'||'fin de mon texte'; -- debut de mon textefin de mon texte

- 18 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Syntaxe SQL et structure de donnes > Dates et heures Comment comparer 2 dates et retourner la plus grande des deux ?
Auteurs : Damien Griessinger (HpAlpha) , Il existe la fonction date_larger :

-- champ date1 : 2004-01-01 -- champ date2 : 2004-01-02 SELECT date_larger(date1,date2);

--> retourne 2004-01-02 (date2) Autre :

SELECT CASE WHEN champ1::date>champ2::date THEN champ1::date ELSE champ2::date END;

Comment recuperer la date au format UTC


Auteurs : fxp17 , On possede une table avec des champs timestamp with zone.

SELECT montimestamp at time zone at 'UTC' FROM matable;

Comment bien utiliser le type Date ?


Auteurs : Damien Griessinger (HpAlpha) , Les problemes de date sont tres courant, une maniere simple pour quasiment s'en sortir a chaque fois, c'est d'utiliser le format amricain : anne-mois-jour exemple : 2005-08-17 on peut modifier le comportement de pg (mais la notation amricaine fonctionnera toujours).

ALTER DATABASE "mabase" SET DateStyle =iso, dmy

cela te permetra de faire

UPDATE matable SET madate='2005-08-17' WHERE id=33; ou meme UPDATE matable SET madate='17/08/2005' WHERE id=33;

- 19 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Syntaxe SQL et structure de donnes > Procdures stockes Comment appeler une procdure stocke ?
Auteurs : Damien Griessinger (HpAlpha) , Si la fonction renvoi un type "simple" (genre integer, text, ...) ou meme rien:

SELECT maprocedurestockee(eventuellement_des_params);

Si la fonction retourne des enregistrements : - La fonction retourne un type record :

CREATE OR REPLACE FUNCTION exemple_proc1(bpchar) RETURNS SETOF record AS $BODY$ DECLARE rec RECORD; BEGIN FOR rec IN SELECT codeinsee FROM t_communes WHERE dep=$1 ORDER BY codeinsee LOOP RETURN NEXT rec ; END LOOP ; RETURN ; end; $BODY$ LANGUAGE 'plpgsql' VOLATILE;

Dans ce cas, lors du select il faut prciser les sorties

SELECT * FROM exemple_proc1('92') AS (codeinsee char(5));

2eme cas, on precise le type au lieu d'un record:

CREATE TYPE typetestproc AS (codeinsee char(5));

CREATE OR REPLACE FUNCTION exemple_proc2(bpchar) RETURNS SETOF typetestproc AS $BODY$ DECLARE rec typetestproc; BEGIN FOR rec IN SELECT codeinsee FROM t_communes WHERE dep=$1 ORDER BY codeinsee LOOP RETURN NEXT rec ; END LOOP ; RETURN ; end; $BODY$ LANGUAGE 'plpgsql' VOLATILE;

Maintenant plus besoin de spcifier les champs, ca marche comme une table standard !

SELECT * FROM exemple_proc2('92')

- 20 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Syntaxe SQL et structure de donnes > Exemples d'utilisations Comment grer un numro de tlphone ?
Auteurs : Damien Griessinger (HpAlpha) , Dans la table matable, on doit mettre un numro de tlphone. Le champ en question : numerotel CHAR(10) On souhaite que chaque lettre doit tre comprise en '0' et '9' et que le numro fait exactement 10 chiffres. On peu gr ce champ grce aux expressions rgulires et la contrainte de valeur :

ALTER TABLE matable ADD CONSTRAINT numerotel_check CHECK (numerotel ~ '^[0-9]{10,}$'::text);

Petite explication : ^ : pour le indiquer debut de la chaine [0-9] : Une plage de caractres de 0 9 {10,} : au moins 10 caracteres // {10} (sans la virgule) exactement 10 caracteres $ : pour indiquer la fin pour plus d'info : www.google.fr mots clefs : -expressions rgulires -regex

Comment peut on gnerer des nombres aleatoires ?


Auteurs : Damien Griessinger (HpAlpha) , Question pos sur le forum : je dois remplir 2 champs d'un table avec ces nombres aleatoires entre 1 et 6 inclus pour le champ 1 et entre 1 et 4 inclus pour le champ 2. mais il faut qu'il y ait au maximum dans la table 4 fois le meme nombre pour le champ 1 et 6 fois le meme nombre pour le champ 2 (ce qui limite le nombre de combinaisons a 24, mais c'est justement ce qu'il me faut) je ne vois pas du tout comment m'y prendre en plsql, est ce que quelqu'un pourrait me lancer sur une piste ? merci Une solution : J'ai pris le probleme differement, je cree un table temporaire qui contient toutes mes valeurs possibles : 1,1,1,1,2,2,2,2,3...........6,6,6,6 et je fais un order by random dessus, je parcours ma table et j'inserre dans ma table finale

CREATE OR REPLACE FUNCTION "public"."testrandom" () RETURNS integer AS $body$ declare i int2; j int2; latable RECORD; begin CREATE TEMPORARY TABLE listevaleurs (mavaleur int2) ON COMMIT DROP; FOR j IN 1..6 LOOP FOR i IN 1..4 LOOP INSERT INTO listevaleurs VALUES (j); END LOOP; END LOOP; FOR latable IN SELECT mavaleur FROM listevaleurs ORDER BY random() LOOP -- ici tu insere dans ta table finale

- 21 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

-- raise notice '%',latable.mavaleur; END LOOP; COMMIT; return 0; end; $body$ LANGUAGE 'plpgsql' VOLATILE ;

- 22 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Administration

- 23 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Administration > Gnral Comment executer des requtes sql sauvegardes dans un fichier texte (.sql) ?
Auteurs : Damien Griessinger (HpAlpha) ,
psql -f /home/hpalpha/monfichier.sql mabase

Comment mettre le format de date dd/mm/yyyy par dfaut ?


Auteurs : Damien Griessinger (HpAlpha) , Les problemes de date sont tres courant, une maniere simple pour quasiment s'en sortir a chaque fois, c'est d'utiliser le format amricain : anne-mois-jour exemple : 2005-08-17 On peut cependant modifier le comportement de pg (mais la notation amricaine fonctionnera toujours).

ALTER DATABASE "mabase" SET DateStyle =iso, dmy

cela permetra de faire

UPDATE matable SET madate='2005-08-17' WHERE id=33; --ou meme UPDATE matable SET madate='17/08/2005' WHERE id=33;

Comment afficher les valeurs de tous les paramtres de configuration ?


Auteurs : Damien Griessinger (HpAlpha) , Communaut PostgreSQL , Il existe une commande particuliere :

SHOW ALL; name | setting --------------------------+---------------add_missing_from | on archive_command | unset australian_timezones | off . . work_mem | 1024 zero_damaged_pages | off (140 rows)

Cette commande peut retourner la valeur d'un seul paramtre, il suffit pour cela, de spcifier la variable apres SHOW :

SHOW DateStyle; DateStyle ----------ISO, MDY

- 24 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

(1 row)

lien : lien :

Commande SHOW Commande SHOW

O est mon fichier postgresql.conf ?


Auteurs : Damien Griessinger (HpAlpha) , Le probleme de l'emplacement du fichier de conf, est qu'il peut etre n'importe o ! Tout dpend du sytme d'exploitation et de l'installation. Un manire simple et efficace est de ce connecter dessus et d'executer la requete :

SHOW config_file;

O est mon rpertoire data ?


Auteurs : Damien Griessinger (HpAlpha) , On peut avoir l'emplacement du rpertoire Data trs facilement avec la requete ci-dessous :

SHOW data_directory;

Comment changer la langue des messages de PostgreSQL ?


Auteurs : Damien Griessinger (HpAlpha) , Il faut utiliser la variable lc_messages Ce paramtre est configurable de plusieurs faons : Soit par le fichier de configuration postgresql.conf :

lc_messages = 'fr_FR.UTF-8'

Soit par un ALTER sur la base :

ALTER DATABASE "mabase" SET lc_messages='fr_FR.UTF-8';

Soit par la commande SET :

SET lc_messages='fr_FR.UTF-8'

lien : lien :

http://www.postgresql.org/docs/8.0/interactive/sql-set.html http://traduc.postgresqlfr.org/pgsql-8.0.2-fr/sql-set.html

- 25 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Administration > Utilisateurs et privilges Comment crer un utilisateur ?


Auteurs : Damien Griessinger (HpAlpha) ,
CREATE USER dupond PASSWORD 'unpassword'

Il existe beaucoup d'autres options, comme dfinir une date de validit par exemple : voir la doc

lien : lien :

CREATE USER CREATE USER

Comment obtenir la liste de tous les utilisateurs ?


Auteurs : Damien Griessinger (HpAlpha) , Par requte SQL :
SELECT usename FROM pg_user; SELECT usename FROM pg_shadow;

En ligne de commande psql :


\du

Comment obtenir la liste des groupes avec les utilisateurs ?


Auteurs : Damien Griessinger (HpAlpha) , Avec une requte :
SELECT usename, groname FROM pg_shadow s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) );

Pour avoir tous les utilisateurs du groupe 'commerciaux' :


SELECT s.usename, g.groname FROM pg_shadow s LEFT OUTER JOIN pg_group g on (s.usesysid = any(g.grolist) ) WHERE g.groname='commerciaux';

- 26 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Administration > Migration, import et export de donnes Comment importer des donnes au format csv ?
Auteurs : Damien Griessinger (HpAlpha) ,
COPY matable FROM '/root/pg/exemple1.csv' WITH CSV;

lien : lien : lien :

Commande COPY Commande COPY Comment exporter des donnes au format csv ?

Comment exporter des donnes au format csv ?


Auteurs : Damien Griessinger (HpAlpha) ,
COPY matable TO '/root/pg/extraction.csv' WITH CSV;

lien : lien : lien :

Commande COPY Commande COPY Comment importer des donnes au format csv ?

- 27 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Administration > Sauvegarde et restauration Comment sauvegarder une base ?
Auteurs : Damien Griessinger (HpAlpha) , en ligne de commande :

pg_dump -i -h 192.168.1.8 -p 5432 -U postgres -F c -v -f "/home/hpalpha/pg/save0001.bak" "MADATABASE";

Le paramtre -F c indique que l'on souhaite une sauvegarde compresse. Pour avoir la sauvegarde au format SQL, il faut mettre -F p ("p" pour plain) lien : Comment restaurer une base ?

Comment restaurer une base ?


Auteurs : Damien Griessinger (HpAlpha) , En ligne de commande :

pg_restore -i -h localhost -p 5432 -U postgres -d "MADATABASE" -v "/home/hpalpha/pg/save0001.bak"

lien :

Comment sauvegarder une base ?

Comment garantir l'intgrit des donnes en continu ?


Auteurs : Damien Griessinger (HpAlpha) , PostgreSQL maintient des journaux WAL (write ahead log). si le systme s'arrte brutalement, la base de donnes peut tre restaure pour avoir une cohrence des donnes en "rejouant" les entres des journaux enregistres depuis le dernier point de vrification. Il existe aussi des systmes de rplication, SLONY-I est le plus abouti d'entre eux.

lien : lien :

http://traduc.postgresqlfr.org/pgsql-8.0.2-fr/backup-online.html SLONY I

- 28 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Administration > Performances Comment mettre un index sur un champ ?
Auteurs : Damien Griessinger (HpAlpha) , Les index sont une mthode courante pour augmenter les performances d'une base de donnes. Un index permet au serveur de bases de donnes de retrouver une ligne spcifique bien plus rapidement que sans index. Mais les index ajoutent aussi une surcharge au systme de base de donnes dans son ensemble, si bien qu'ils doivent tre utiliss avec discernement.

CREATE INDEX idx_matable_monchamp ON matable (monchamp);

on peut aussi crer un index fonctionnel:

CREATE INDEX idx_matable_monchamp_lower ON matable (lower(monchamp));

lien : lien :

http://www.postgresql.org/docs/8.0/interactive/indexes.html http://traduc.postgresqlfr.org/pgsql-8.0.2-fr/indexes.html

- 29 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Programmation

- 30 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Programmation > Les chaines de connexions Comment se connecter PostgreSQL avec ASP ?
Auteurs : Damien Griessinger (HpAlpha) , La chaine de connexion est par exemple : DRIVER={PostgreSQL};SERVER=192.168.1.10;port=5432;DATABASE=boutique;UID=monloginpg;PWD=monpassword; 192.168.1.10 --> Adresse IP du serveur PostgreSQL 5432 --> le port du serveur boutique --> le nom de la database monloginpg --> le login de connexion la base monpassword --> le mot de passe du login Exemple d'utilisation :

% conn = Server.CreateObject("ADODB.Connection"); rs = Server.CreateObject("ADODB.RecordSet"); conn.ConnectionString = "DRIVER={PostgreSQL};SERVER=192.168.1.10;port=5432;DATABASE=boutique;UID=monloginpg;PWD=monpassword;"; conn.Open; req = "select * from produit;" ; rs = conn.Execute(req); %

- 31 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

La FAQ de PostgreSQL

Sommaire > Programmation > PL/PGSQL Comment insrer un commentaire dans du pl/pgsql ?
Auteurs : Damien Griessinger (HpAlpha) , soit un double moins pour jusqua la fin de la ligne :

SELECT * FROM matable; -- ici mon commentaire

soit

/* mon commentaire sur plusieurs lignes */

- 32 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://postgresql.developpez.com/faq/

Vous aimerez peut-être aussi