PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Général » Requête sur lignes conjointes de table » 06/03/2017 10:16:42

Jean-Louis59100
Réponses : 1

Bonjour,

Je débute à la fois en SQL et sur Postgresql.

Après avoir consulté la doc et les divers forums, j'avoue que je "sèche" sur la question suivante:
En gros, j'ai une table T constituée de 2 colonnes :
- col1 text concerne des noms
- col2 int constitue un drapeau sur chaque ligne de T.
Pour simplifier, je ne mentionne pas la PK. Peu importe également pour ici la sémantique des colonnes 1 et 2.
Voici un exemple de données stockées dans T :
'apocalpyse'  1
'now'            1
'coppola'       2
Je souhaiterais pouvoir requêter de manière à construire la chaîne 'apocalypse now'. Mon idée est de faire un SELECT sur les lignes correspondant à un drapeau identique (en l'occurrence, valeur 1 dans l'exemple). Mais ensuite, comment puis-je faire pour obtenir 'apocalpyse' || 'now' ? J'ai bien pensé à quelque chose du style PARTITION BY mais si j'ai bien compris, cela ne s'applique que pour la technique du fenêtrage et sur des fonctions d'aggrégat...

Merci pour votre aide et bon lundi!

Jean-Louis

#2 Re : Général » Foreign key, table et vue » 02/03/2017 16:01:33

Bonjour Sébastien,

En fait, dans mon idée, la vue me servait uniquement pour bénéficier de la "colonne calculée" (prénom + nom etc.)
Mais il est fort possible que je maîtrise mal certaines notions, et que de ce fait, je me crée un faux problème...

Donc, je reprends un peu pour voir si je ne me plante pas :

la colonne OEUVRE.auteur est une FK, qui référence AUTEUR.id. (PK) : cela je le comprends, pas de souci. Mais mon souhait, c'est qu'au moment de la saisie de OEUVRE.auteur, cela fasse appelle à la vue (puisque c'est là que j'y ai la "colonne calculée") et non à la table. L'avantage de la "colonne calculée" est d'offrir un formatage de la donnée tout-en-un (prénom, nom, date naiss, date deces) là où la table ne présente que les colonnes séparées, moins lisibles.

Pour info supplémentaire, j'utilise un Datagrip (de JetBrains) comme client.

Merci pour vos remarques et idées.

Cordialement,
Jean-Louis

#3 Général » Foreign key, table et vue » 02/03/2017 12:21:49

Jean-Louis59100
Réponses : 3

Bonjour,

Mes excuses si je reviens sur une problématique déjà abordée (j'ai lu des discussions là-dessus) mais je suis novice sur PG et je préfère exposer mon problème avec une mise en situation en pseudo-code.

Une table AUTEUR et une table OEUVRE.

Table AUTEUR :
- id (primary key)
- prénom
- nom
- date naiss
- date deces

Table OEUVRE :
- id (primary key)
- auteur (foreign key sur AUTEUR.id) (pour faire simple, un seul auteur par oeuvre)
- titre

Donc, j'ai posé une clé étrangère dans OEUVRE qui référence un identifiant d'auteur dans AUTEUR. Jusque là, OK.
J'aimerais, pour chaque appel à l'identifiant d'auteur, ne pas me retrouver avec la table AUTEUR "brute de décoffrage" (avec le colonnage id, prénom, nom etc.) mais bien plutôt avec ce que dans Ms-Access on appelle un champ calculé avec concaténations du genre : prénom + nom + (date naiss - date deces).
Effectivement, j'ai réalisé une vue qui me permet ce type de colonne mais... pas possible de poser une clé étrangère sur une vue... donc, je suis un peu coincé!

Quelle serait la parade la plus simple pour pallier cela?

Un grand merci par avance !

Jean-Louis

#4 Re : PSQL » psql/problème mot de passe » 21/02/2017 15:33:55

Un grand merci à tous pour vos conseils et vos indications!
Ca marche ...et en plus je crois avoir mieux compris certains points concernant les outils d'administration!

(J'ai encore un petit souci mais c'est par rapport au fichier d'init et je lancerai un nouveau post prochainement.)

Bien cordialement,
Jean-Louis

#5 Re : PSQL » psql/problème mot de passe » 21/02/2017 11:16:56

Bonjour,

Je réponds à la fois à Guillaume et à "dverite".


Dans le dossier 'C:\Program Files\PostgreSQL\9.6\bin', il y a une série d'applis : clusterdb, createdb...psql...
Ces applis ouvrent une console. C'est là où un mot de passe m'était initialement demandé.

Du coup, j'ai modifié pg_hba.conf de la façon suivante :

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
#host    replication     postgres        127.0.0.1/32            trust
#host    replication     postgres        ::1/128                 trust

(pour info, pg_hba.conf se trouve sur un disque dur externe, dans la mesure où à l'install, j'ai opté pour le stockage des data sur ce disque dur externe)

Actuellement donc, lorsque j'ouvre par exemple psql (dans \bin), le prompt s'affiche, juste le temps de voir le message indiquant que l'utilisateur Jean-Louis n'existe pas, et se referme aussi vite.

...cmd.exe, je veux bien l'utiliser mais je ne le trouve nulle part! Il faut le télécharger?? (ou alors c'est l'invite de commandes type de Windows?...)

Merci beaucoup pour vos remarques et réponses.

Cordialement,
Jean-Louis

#6 Re : PSQL » psql/problème mot de passe » 20/02/2017 19:14:30

J'ai pratiqué la modification mais sans succès : toujours le prompt qui s'affiche et se ferme presque aussi vite (à peine le temps de voir le message indiquant que l'utilisateur Jean-Louis n'existe pas).

Je me suis peut-être mal expliqué et je me permets d'en profiter pour revenir sur deux choses :
- lorsque je parle de prompts, je veux bien désigner les applications clients console livrées avec PostgreSQL ;
- apparemment, le rôle/utilisateur auquel fait référence le message d'erreur correspond à mon identifiant de session Windows (admin). Cela a-t-il un rapport quelconque avec le problème?

Merci beaucoup pour l'aide que vous m'apportez.

Cordialement,
Jean-Louis

#7 Re : PSQL » psql/problème mot de passe » 20/02/2017 11:39:29

Bonjour Arkhena,

A vrai dire, je ne peux pas utiliser l'utilitaire createuser puisqu'il me dit que le rôle Jean-Louis n'existe pas...

J'ai donc créé un rôle Jean-Louis directement via la commande SQL
CREATE ROLE "Jean-Louis" SUPERUSER ;

Par SELECT rolname FROM pg_roles;, j'ai confirmation que ce rôle est bien créé (il est dans la table appropriée, avec postgres et pg_signal_backend). Toutefois, j'ai toujours le même souci : les prompts me signalent que l'utilisateur/rôle Jean-Louis est manquant.

(Pour rappel, j'ai bien modifié avec trust dans le fichier pg.hba.conf.)

Cordialement
Jean-Louis

#8 Re : PSQL » psql/problème mot de passe » 20/02/2017 09:45:03

Merci beaucoup pour cette réponse rapide.

Je viens de tester : il y a du mieux mais le prompt, à peine affiché, se referme aussitôt avec le message :
Le rôle 'Jean-Louis' n'existe pas.
(Jean-Louis étant mon nom d'utilisateur sous Windows ; pour info, je suis sur PC autonome : PostgreSQL est installé en local).

Dois-je re-potasser la doc concernant les rôles et les utilisateurs?...
En fait, ce qui me gêne un peu, c'est qu'une grande partie des commandes d'administration que je souhaite apprendre doivent être effectuées sur prompt et que comme je n'arrive pas à me connecter sur console, euh... je "boucle"...

En tous les cas, bravo pour l'aide et la réactivité.

Cordialement,
Jean-Louis

#9 PSQL » psql/problème mot de passe » 19/02/2017 22:03:10

Jean-Louis59100
Réponses : 12

(Postgres 9.6/Windows 8.1)

Bonjour,

Je suis novice sous Postgresql, que je suis en train de découvrir.

Lorsque je veux utiliser les prompts "prêts à l'emploi" fournis lors de l'install (pg_dump, etc et bien sûr psql), un mot de passe m'est demandé.
Lorsque je saisis celui défini pour l'utilisateur/rôle 'postgres', il n'est pas reconnu et le prompt se ferme.

Il y a sans doute certains aspects liés à l'authentification que je maîtrise mal, et j'avoue que j'ai pas mal cherché sur internet avant de poster sur ce forum.
Vous serait-il possible de m'éclairer sur la question et m'indiquer un moyen de m'en sortir?
Un grand merci par avance.

Cordialement,
Jean-Louis

Pied de page des forums

Propulsé par FluxBB