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ête postgre


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut requête postgre
    Bonjour à tous,
    je suis entrain de faire un prog qui construit les requêtes avec postgre et là j'ai un petit soucci , qd j'exécute mon prog il arrive à créer la table Fournisseur mais pas Facture,

    CREATE TABLE Fournisseur (Code int4 NOT NULL , Nom varchar(20), Prenom varchar(20), tel_bureau varchar(10), tel_mobile varchar(10), tel_domicile varchar(10));
    CREATE TABLE Facture (Code int4 NOT NULL references Client.Nom, Date date, Paye int4, constraint cleprimaire primary key (Code));
    La requête a échoué: java.sql.SQLException: ERROR: Namespace "fournisseur" does not exist

    merci

  2. #2
    Membre averti Avatar de piff62
    Inscrit en
    Décembre 2003
    Messages
    431
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2003
    Messages : 431
    Points : 417
    Points
    417
    Par défaut
    Tu creer bien (ou tu as deja) une table client avant ?
    Puisque tu y fais references ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    dans le prog test je lui donne les deux tables à creer (Fournisseur et Facture).

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Re: requête postgre
    Citation Envoyé par sarah79
    Bonjour à tous,
    je suis entrain de faire un prog qui construit les requêtes avec postgre et là j'ai un petit soucci , qd j'exécute mon prog il arrive à créer la table Fournisseur mais pas Facture,

    CREATE TABLE Fournisseur (Code int4 NOT NULL , Nom varchar(20), Prenom varchar(20), tel_bureau varchar(10), tel_mobile varchar(10), tel_domicile varchar(10));
    CREATE TABLE Facture (Code int4 NOT NULL references Client.Nom, Date date, Paye int4, constraint cleprimaire primary key (Code));
    La requête a échoué: java.sql.SQLException: ERROR: Namespace "fournisseur" does not exist

    merci
    désolée c'était
    CREATE TABLE Facture (Code int4 NOT NULL references Fournisseur.Nom, Date date, Paye int4, constraint cleprimaire primary key (Code));

  5. #5
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 150
    Points
    150
    Par défaut
    Une remarque, avant de parler des solutions : avec PostgreSQL, il est fortement déconseillé d'utiliser des majuscules dans les noms de tables, champs, index... bref, tous les objets de la base.

    L'idéal serait donc de tout mettre en minuscules dans tes requêtes Malgré tout, si tu veux continuer à utiliser des majuscules, il faut que tu mettes tes noms de tables et de champs entre double-quotes : cela indiquera à PostgreSQL qu'il doit respecter la casse.

    Une dernière chose, à propos de ton champ Date de type date : c'est une très mauvaise habitude d'utiliser les mots réservés pour ses tables, champs... Utilise plutôt des noms plus significatifs (ici, date_facture, par exemple)

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Quentin
    Une remarque, avant de parler des solutions : avec PostgreSQL, il est fortement déconseillé d'utiliser des majuscules dans les noms de tables, champs, index... bref, tous les objets de la base.

    L'idéal serait donc de tout mettre en minuscules dans tes requêtes Malgré tout, si tu veux continuer à utiliser des majuscules, il faut que tu mettes tes noms de tables et de champs entre double-quotes : cela indiquera à PostgreSQL qu'il doit respecter la casse.

    Une dernière chose, à propos de ton champ Date de type date : c'est une très mauvaise habitude d'utiliser les mots réservés pour ses tables, champs... Utilise plutôt des noms plus significatifs (ici, date_facture, par exemple)
    merci pour tes conseils mais j'ai tjrs le même pb : la requête a échoué: java.sql.SQLException: ERROR: Namespace "client" does not exist
    je voudrais savoir qu'est ce que ça veut dire Namespace.
    merci

  7. #7
    Membre actif

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 209
    Points : 249
    Points
    249
    Par défaut
    Hello,

    Dans ton create table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE Facture (Code int4 NOT NULL references Client.Nom, Date date, Paye int4, constraint cleprimaire primary key (Code));
    tu utilises une contrainte d'intégrité référentielle sur ton code qui doit référer Client.nom (déjà là, je ne comprends pas pourquoi code, qui est un entier, réfère Client.nom, qui est surement un varchar). Le problème c'est que ta table CLient n'est pas encore créée.... à toi de le faire avant ce create table.

    A+

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Bouboubou
    Hello,

    Dans ton create table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE Facture (Code int4 NOT NULL references Client.Nom, Date date, Paye int4, constraint cleprimaire primary key (Code));
    tu utilises une contrainte d'intégrité référentielle sur ton code qui doit référer Client.nom (déjà là, je ne comprends pas pourquoi code, qui est un entier, réfère Client.nom, qui est surement un varchar). Le problème c'est que ta table CLient n'est pas encore créée.... à toi de le faire avant ce create table.

    A+
    je ai déjà creé la table client et pourtant il m'affiche cette erreur.

  9. #9
    Membre actif

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 209
    Points : 249
    Points
    249
    Par défaut
    Dans ce cas, il faut nous donner ton script entier... avec une petite partie on ne peut rien faire...

    A+

  10. #10
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 150
    Points
    150
    Par défaut
    Citation Envoyé par sarah79
    merci pour tes conseils mais j'ai tjrs le même pb : la requête a échoué: java.sql.SQLException: ERROR: Namespace "client" does not exist
    je voudrais savoir qu'est ce que ça veut dire Namespace.
    merci
    Oh désolé, j'avais mal lu ton message d'erreur au début, j'étais persuadé qu'il s'agissait d'une table non trouvée
    En fait, la syntaxe de ta clé étrangère est erronée, elle devrait être comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Code int4 NOT NULL references Client (Nom)
    c'est-à-dire le nom de la table, suivi du (des) champ(s) à référencer entre parenthèses. Dans ton code, tu utilisais une notation pointée que PostgreSQL interprétait comme ceci nom_namespace.nom_table.

    Concernant les namespace (ou schéma dans la documentation française), voilà ce que la doc en dit

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    merci beaucoup, ça marche

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

Discussions similaires

  1. Remplir un Datagridview avec une requête Postgres
    Par robertisaline dans le forum VB.NET
    Réponses: 1
    Dernier message: 02/02/2012, 08h24
  2. Requête POSTGRE en MYSQL trop longue
    Par kabil84 dans le forum Requêtes
    Réponses: 7
    Dernier message: 05/07/2011, 17h03
  3. Postgres : requête à partir d'un fichier .sql
    Par odyssee2 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 12/08/2005, 12h18
  4. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

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