IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Requêtes multi-base


Sujet :

PostgreSQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Requêtes multi-base
    Bonjour,

    comment faire une requete select entre deux base de données hébergé sur le
    même serveur postgresql ??

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    Merci de poster dans le bon Forum à l'avenir.

  3. #3
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT T1_ID,T1_CHAMP1,T2_CHAMP1
    FROM DB1.MonUser.MATABLE1 JOIN DB2.MonUser.MATABLE2
                                     ON T1_ID=T2_ID
    Je sais que PostGre est très Normatif et va digerer ce code.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  4. #4
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    [quote="WOLO Laurent"]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT T1_ID,T1_CHAMP1,T2_CHAMP1
    FROM DB1.MonUser.MATABLE1 JOIN DB2.MonUser.MATABLE2
                                     ON T1_ID=T2_ID
    Lorsque j'essaie cette solution, postgres me répond "les références entre bases de données ne sont pas implémentées".

    Comment fait-on pour les implémenter ?

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Là, il nous faut un Expert PostGre pour nous servir !!!

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    La solution retenue par les concepteurs de PostgreSQL pour les requêtes inter-bases est l'utilisation des schémas.

    Une solution tierce existe peut-être, mais une recherche rapide sur http://pgfoundry.org n'a rien donné...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  7. #7
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    La technique recherchée s'appelle le cross database, effectivement ce n'est pas encore implémenté.
    Il existe une solution, perso, je l'utilise pour certains cas particulier : dblink

    c'est plutot performant quand les bases sont sur le meme serveur

    tu trouvera dblink dans les contribs

    exemple d'utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM dblink('dbname=mabase','select * from matable') AS t(id integer, champ1 integer, champ2 varchar);
    tu peux meme creer des vues, l'utiliser dans des procedures stockées, te connecter a une base distance
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Finalement, ce n'était pas si facile que je le pensais.
    Voilà un près bon pionnier qui somnole encore sur des notions fondamentales comme le cross-database.
    -1 pour PosteGreSQL

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  9. #9
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'ai testé avec dblink, ça fonctionne bien avec des bases sur le même serveur.
    Merci pour cette information.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Points : 132
    Points
    132
    Par défaut Auto-correction
    Bonjour,

    Désolé de déterrer ce vieux sujet, mais je tente de faire une requête multi-bases, sur un serveur PGSQL 9.3, et j'obtiens le message d'erreur suivant :
    ERREUR: la fonction dblink(unknown, unknown) n'existe pas
    État SQL :42883
    Astuce : Aucune fonction ne correspond au nom donné et aux types d'arguments.
    Vous devez ajouter des conversions explicites de type.
    Caractère : 51
    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE OR REPLACE VIEW mavue AS 
    SELECT * FROM dblink('hostaddr=localhost port=5432 dbname=mabase user=postgres password=motdepasse','select * from matable');
    Merci pour votre aide.

    Sylvain M.

    [edit]
    Bon, j'ai trouvé mon erreur : il faut d'abord ajouter l'extension "dblink" à la base de données.
    Désolé pour le dérangement, mais si ça peut aider d'autres débutants comme moi !
    A+
    [/edit]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Migration SQL ou outils de requête multi bases
    Par Ashen-Shugar dans le forum Langage SQL
    Réponses: 0
    Dernier message: 11/07/2008, 10h48
  2. Requêtes multi bases
    Par sheura dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/11/2007, 14h34
  3. Requêtes multi bases de données
    Par clb01 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/09/2007, 12h25
  4. requêtes Multi Base avec Mot de Passe
    Par bohor2gannes dans le forum Access
    Réponses: 4
    Dernier message: 27/02/2006, 14h45
  5. Requête multi-base
    Par Vituret dans le forum Débuter
    Réponses: 1
    Dernier message: 04/04/2005, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo