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 » Héritage entre tables » 06/02/2015 17:53:54

pjmric
Réponses : 2

Bonjour,
PostgreSQL 9.4 sur Thinkpad W500 Vista  build 6002

J'ai introduit de l'héritage dans mon modèle de la façon suivante:
Table entreprise = table mère.
Tables bureau d'étude, maitre d'oeuvre, fabricant, gestionnaire. Ces 4 tables héritent de la table entreprise.
J'ai commencé à charge la base en utilisant pdAdminIII/afficher les données/visualiser les 100 premières lignes.

J'ai fait l'erreur de charger en commençant par les tables filles. Celles-ci ont été définies avec 6 colonnes présentent dans la table mère et 4 colonnes propres à la table fille. J'ai saisi l'entreprise correspondant à chaque fille dans la grille de la table fille.

Résultat: la table entreprise a été mis à jour automatiquement avec des lignes dont la clé est dupliquée. Par ex. si dans la table bureau d'étude j'ai entré 4 bureaux d'étude avec le même code entreprise, je retrouve 4 lignes ayant le même code entreprise dans la table entreprise.

Comment faire pour revenir à une ligne dans la table mère ? (postgreSQL refuse la suppression de 3 lignes sur 4).

La doc dit: "si villes.nom est déclarée UNIQUE ou clé primaire (PRIMARY KEY), cela n'empêche pas la table capitales de posséder des
lignes avec des noms dupliqués dans villes. Et ces lignes dupliquées s'affichent par défaut dans les requêtes sur villes. En fait,
par défaut, capitales n'a pas de contrainte d'unicité du tout et, du coup, peut contenir plusieurs lignes avec le même nom. Une
contrainte d'unicité peut être ajoutée à capitales mais cela n'empêche pas la duplication avec villes ;"

Je ne sais pas si cela s'applique vraiement au pb que j'ai décrit.
Pour résoudre ce problème, je pense défaire ce que j'ai saisi dans la base (table mère et filles) mais comme il y a beaucoup de clés étrangères c'est un long labeur!!!

Je vous remercie de vos suggestions.

#2 Re : PgAdmin3 » Les tables d'un schéma sont inexistantes pour l'outil de requête » 25/01/2015 15:35:54

Merci Julien. Il fallait que je mette les guillemets autour du schéma et autour de la table car j'ai fait l'erreur de mettre des majiscules un peu partout. Erreur de jeunesse bien que je sois retraité.

#3 PgAdmin3 » Les tables d'un schéma sont inexistantes pour l'outil de requête » 25/01/2015 00:42:39

pjmric
Réponses : 2

PGAdmin III sur Thinkpad W500 sous Vista (Windows 6.0 pack2) PostgreSQL 9.4
_________________________________________________________________________________________________________
La base sfact1 a un schéma de 49 tables. 2 seulement ont été chargées. Je fais un test sur ces 2 tables.
La commande d'affichage
Outils/afficher les données/visualiser les 100 premières lignes
permet effectivement de voir le contenu des 2 tables sur 49 que j'ai chargées dans la base sfact1.

1/ Je lance l'outil Editeur de requête. Je saisis les commandes sql SELECT * FROM Autorite; l'outil me renvoit un code erreur 42P01 "table indéfinie". Si je qualifie la table par le schéma où elle est, sf1.Autorite, j'obtiens la même erreur.

2/ je lance cmd et je me connecte à ma base sfact1 (schéma sf1). je demande la liste des tables \d: Message d'erreur AUCUNE RELATION.

Quel est SVP votre avis sur le problème ?
Merci

#4 PgAdmin3 » Réutilisation de schémas » 24/01/2015 18:04:16

pjmric
Réponses : 0

Bonjour,

Existe-il une commande permettant de réutiliser un schéma très important d'une base dans une autre qui n'a pas pris la 1ère pour modèle ?
Je crois que j'ai posé le problème au Forum un peu trop vite: c'est l'impatience d'obtenir un résultat. J'ai sauvegardé avec option schéma seulement que je n'avais pas vu en bas de fenêtre puis j'ai restauré dans une nouvelle base.
ce post n'a plus de raison d'être.

#5 Général » fenêtre DOS sous Windows » 23/01/2015 16:29:53

pjmric
Réponses : 1

Bonjour,
Système: Thinkpad W500/Vista (Windows v 6 SP2) PostgreSQL 9.4 (bêta3)
________________________________________________________________________________________________
J'ai commencé mon projet en Octobre 2014. J'ai essayé de travailler sous DOS/ psql. Je n'ai jamais réussi.
Il fallait faire 2 choses:
- Changer de page de code: passer de 850 à 1252.
- Changer de police: passer en Lucida console.
Le 2ème point est traité.
Le premier ne résout pas les erreurs d'affichage. Le code 1252 est destiné à l'Allemagne. Quelle code utiliser pour la France ?
Voila l'erreur telle qu'affichée par Dos:

C:\Users\postgres\chcp
Page de code active : 850
C:\Users\postgres\chcp 1252
Page de code active : 1252
C\Users\postgres>cd "C:\Program Files\PostgreSQL\9.4\bin"
C:\Program Files\PostgreSQL\9.4\bin>psql
Mot de passe
psql (9 beta3)

postgres=# CREATE DATABASE SFact2 -D tsf1 -e -O SFAuthor -T SFact1;
ERROR: Invalid byte sequence for encoding "UTF8" : oxe9 0x71 0x75

J'obtiens la même erreur en utilisant runpsql avec chcp 1252 à l'intérieur.
____________________________________________________________________________________________________
A ce sujet, que font les instructions suivantes de runpsql:
for /f "delims=" %%a in ('chcp | find /c "932"' do @ SET CLIENTNCODING_JP=%%a etc...
Comme cela a rapport avec l'encodage client c'est peut-être important pour régler ce problème? où puis-je me former dans le langage de script ?
__________________________________________________________________________________________________
En conclusion: Les utilisateurs Windows ont-ils vécu les mêmes difficultés ? quels sont les contournements utilisés ?
DOIT-ON ENCODER LES BD EN UTF8 OU EN WIN1252 ?
Nota: Mon projet est destiné à être accessible sur le Web.

Cordialement

PS: Est-il possible d'attacher des fichiers au forum  pour illustrer le cas traité ?

#6 Re : Installation » Commandes psql à l'installation » 20/10/2014 20:17:12

Bonjour Merci pour votre réponse.

Sous psql  ma requête pour créer une table était:
CREATE TABLE Autorite;


Sous PGAdminIII voici les infos que j'ai entré dans la fenêtre d'ajout d'une connexion à un serveur:
nom: Fact1 (la doc dit The name is a text to identify the server in the pgAdmin tree donc je suppose que c'est un nom quelconque)
hôte: localhost
Port: 5432
Service: c'est là que le bas blesse. si je mets postgres-9.4 (nom court du service) ou postgresql-9.4 - Server9.4 (nom complet) ou si je ne mets rien mais je crée une variable d'environnement utilisateur PGSERVICE qui contient postgresql-9.4 le message d'erreur est le même:

Error connecting to the server: definition of service postgresql-9.4 not found

Base maintenance: Template1
Nom d'utilisateur: postgres
Mot de passe: celui qui a été associé au serveur lors de l'installation
Groupe: Serveurs (pas d'autre choix)

#7 Re : Installation » Commandes psql à l'installation » 18/10/2014 20:55:54

PostgreSQL 9.4
Bonjour,
Etant dans psql \c Template0 a généré un message "Template0 n'accepte plus de connexion". J'ai pas compris. C'est un détail. Je me suis connecté à Template1. C'est bon.

Mon problème bloquant est, étant sous Vista, en rapport avec l'encodage: J'ai bien inclus la commande chcp 1252 dans le script runpsql. Cela ne résout pas le problème.
J'ai pu créer un TABLESPACE et un SCHEMA sans erreur.
Je n'ai pas pu créer de TABLE (je n'ai pourtant pas utilisé d'accent).
Le message d'erreur était: "invalide byte seq for encoding "UTF8" 0xe9 0x71 0x75"

La doc PostgreSQL dit:
     If psql detects a problematic console code page, it will warn you at startup. To change the console code page, two things are necessary:
      •
     Set the code page by entering cmd.exe /c chcp 1252. (1252 is a code page that is appropriate for German; replace it with your value.) If you are using Cygwin, you can put this command in /etc/profile.

     •
     Set the console font to Lucida Console, because the raster font does not work with the ANSI code page.

Comme je ne reçois plus d'avertissement sur l'encodage cela veut dire que le changement a bien été pris en compte. Mais ça ne marche pas.
La preuve: quand j'exécute la commande \l les guillemets et le é qui sont affichés par la commande traduite sont remplacés par des caractères fantaisistes.

Le problème serait peut-être résolu avec le changement de font de la console (passer en LUCIDA console).

Je me suis dit: psql j'abandonne. Voyons pgAdminIII.
Problème: Le nom de service tel qu'affiché par vista n'est pas accepté par la commande "ajouter un enregistrement de serveur".
Le service sous Vista a un nom court: postgresql-9.4 et un nom complet "postgresql-9.4 - PostgreSQL Server9.4". Ni l'un ni l'autre ne sont acceptés.

Voilà. Je suis frustré d'être bloqué sur des erreurs système. Bien sûr je ne prends pas le forum pour un service de support. Simplement si des utilisateurs ont vécu cela je les remercie de m'indiquer comment ils en sont sortis.

#8 Installation » Commandes psql à l'installation » 17/10/2014 17:54:41

pjmric
Réponses : 5

Bonjour,
Envirennement:Vista
Initialisation de la base de données
1/ Je cherche à utiliser la base template0 comme il m'est conseillé dans la doc.
message d'erreur: "template0 n'accepte plus de connexion"

pas de problème 2 qui était causé par une erreur de syntaxe.

#9 Installation » Encodage » 14/10/2014 18:38:02

pjmric
Réponses : 6

Bonjour,
Je débute. Je développe une base de données d'environnement à titre personnel pour l'instant.
J'utilise Vista professionnel, 2007 Service Pack 2.
J'ai installé PostgreSQL 9.4 bêta 3, est-ce imprudent ?
Je ne suis pas un cador. Je suis bloqué par le conflit d'encodage UTF8 versus 1252.
Mon compte utilisateur a les droits d'Administrateur.
J'essaye de copier chcp 1252 dans runpsql. La directory des scripts est en lecture seule. J'essaye d'enlever "lecture seule". Le système dit que je n'ai pas les droits d'administrateur. Je sais que je suis hors PostgreSQL mais je n'ai pas d'idée pour résoudre.
Comment modifier runpsql ? y a-t'il une autre façon de procéder ?
Ma gratitude pour celle/celui qui me permettra de progresser.

Pied de page des forums

Propulsé par FluxBB