Vous n'êtes pas identifié(e).
Bonjour,
Je cherche à définir une vue qui reprend les colonnes d'une table et en ajoute une dont le contenu est le même pour toutes les lignes. Mettons que j'ai une table « table (gid, colonne1, colonne2) » et je souhaite définir une vue « v_table (gid, colonne1, colonne2, colonne3) ». La colonne 3 doit comporter toujours la même valeur (par exemple «a»). Comment écrire ma requête de définition de la vue ? J'ai essayé les deux pistes suivantes mais sans succès :
ALTER TABLE (SELECT * FROM table) ADD COLUMN colonne3 VARCHAR(1) DEFAULT 'a' ;ou encore :
WITH tabletemp AS (SELECT * FROM table) ALTER TABLE tabletemp ADD COLUMN colonne3 VARCHAR(1) DEFAULT 'a' ;Si quelqu'un a une idée...
Merci beaucoup !
Thomas
J'ai trouvé ! Après création de la séquence, utiliser l'instruction suivante :
ALTER TABLE schema.reseau ALTER COLUMN gid
SET DEFAULT nextval('schema.reseau_gid_seq'::regclass) ;Thomas
Bonjour,
J'ai une colonne « gid INTEGER NOT NULL » dans une table reseau, que je souhaiterais passer en « gid serial NOT NULL ». J'ai donc créé une séquence avec l'instruction « CREATE SEQUENCE schema.reseau_gid_seq ». Ensuite, je souhaite affecter la séquence à ma colonne gid avec l'instruction suivante :
ALTER SEQUENCE schema.reseau_gid_seq OWNED BY reseau.gid ;J'ai le message d'erreur suivant : « la relation « reseau » n'existe pas »... Je ne comprends pas ce message. L'instruction que j'utilise est-elle fausse ?
Merci pour votre aide !
Thomas
Bonjour,
Pourtant, la requête suivante affiche bien le contenu de la colonne geom :
SELECT * FROM matable ;C'est quand même bizarre ce truc !
Thomas
Bonjour,
J'ai une table stockant des polygones [geometry(MultiPolygon)] dont la colonne geom n'affiche aucune valeur. D'après ce que j'ai pu trouver, il s'agirait d'un bug d'affichage lié à pgAdmin III (testé sur les versions 1.16 et 1.18). En effet, l'affichage dans QGIS montre qu'une géométrie est bel et bien stockée puisque la couche de polygones s'affiche parfaitement. Je trouve cela assez gênant car j'utilise parfois des fonctions PostGIS pour mettre à jour cette colonne sur certaines lignes et le bug ne me permet pas de vérifier si la mise à jour a bien été effectuée...
Avez-vous déjà rencontré ce problème et éventuellement trouvé une solution ?
Pour info : message posté sur GeoRezo en parallèle ici. Je mettrai à jour de part et d'autre si une solution existe.
Merci !
Thomas
OK, merci ! Je n'avais pas compris que c'était de ce raccourci dont parlait rjuju...
Bonne journée !
Thomas
Bonjour rjuju,
Merci pour tes réponses rapides et ton suivi sur ce topic ! Le problème est que je ne comprends pas de quoi tu veux parler... Je ne comprends pas de quel raccourci tu parles et où il se trouve. Pourrais-tu m'en dire un peu plus (si tu sais), ce qui éviterait encore de multiples échanges. Désolé d'insister...
Bonne journée !
Thomas
OK, dans ce cas où puis-je trouver ce fameux raccourci pour le modifier ?
Je ne comprends pas... J'ai téléchargé l'archive 1.18.1 donc le fichier « upgrade.bat » est le bon, non ?
Bonjour,
J'ai téléchargé le package 1.18.1 (dossier zippé) et exécuté le fichier upgrade.bat. J'obtiens un message m'indiquant que la version a bien été mise à jour mais après vérification, c'est toujours la 1.16 qui est installée...
Y-a-t-il une manipulation particulière à faire ?
Merci encore !
Thomas
Bonsoir,
Merci pour ta réponse. C'est justement le type de fichier que je ne trouve pas sur le net... Si quelqu'un a un lien qui pointe vers autre chose que l'install complète, je suis preneur !
Merci encore et bonne soirée,
Thomas
Bonjour,
Je souhaiterais mettre à jour ma version de pgAdmin III (actuellement 1.16.1). Je ne trouve pas d'informations claires sur la manière de procéder. Faut-il que je désinstalle totalement ma version avant d'installer la nouvelle ?
Merci beaucoup !
Thomas
Bonjour,
Je souhaiterais maintenir à jour une colonne de table en permanence. Par exemple : le contenu d'une colonne 1 est la concaténation du contenu des colonnes 2 et 3. Je souhaiterais que cette colonne 1 soit toujours à jour, lors de la création de nouvelles lignes ou de la modification de valeurs dans les colonnes 2 ou 3... Qu'est-ce-qui vous paraît le plus approprié : règles, triggers ?
Merci pour votre aide !
Thomas
Merci infiniment arthurr ! Je ne connaissais pas les fonctions window... Ça change la vie dans mon cas !
Bonne continuation,
Thomas
******************
EDIT
******************
J'ai trouvé ça qui semble fonctionner, puis-je faire plus simple ?
WITH resultat AS (SELECT COUNT(id) AS total FROM matable) SELECT materiaux, COUNT(id)*100/total AS pourcentage FROM resultat, matable GROUP BY total, id ; Thomas
Bonjour,
J'ai une table structurée de la manière suivante :
id | materiaux
--------------------------
1 | fonte
2 | pvc
3 | pvc
4 | pvc
5 | fonte
6 | fonte
7 | fonte
8 | fonte
Je calcule facilement le nombre d'occurences de « fonte » et de « pvc » avec la requête suivante :
SELECT materiaux, COUNT(id) AS nombre FROM matable GROUP BY materiaux ; Je souhaiterais avoir le pourcentage de chaque matériaux plutôt que le nombre brut d’occurrences. J'ai bien trouvé une piste sur ce post mais je n'arrive pas à transposer l'exemple dans mon cas (ça ne marche pas...).
Si quelqu'un peut m'aider...
Merci beaucoup d'avance !
Thomas
Bonjour,
Merci pour vos réponses. Merde alors, j'avais pourtant passé du temps sur la modélisation... Pour éclaircir un peu le sujet, je joins les liens vers le MCD (avec les cardinalités) et le modèle relationnel qui en découle (l'utilisation des balises img avec ces adresses ne marchent pas...). Je ne comprends pas bien la table intermédiaire geo dont parle arthurr puisque les cardinalités (1,1) n'impliquent pas la création de ce type de table, mais seulement d'une clé étrangère dans les tables geo_x. J'espère que ces schémas peuvent vous aider à me dire ce qui cloche.
Merci encore pour votre aide !
Thomas
Bonjour,
C'est ce que j'ai finis par faire... Je pensais qu'il y avait plus simple. Merci pour votre aide et... votre patience (j'en suis conscient) !
Bonne soirée,
Thomas
Bonjour, super ça marche très bien avec un petit correctif :
SELECT CASE colonne_1 WHEN TRUE THEN 'oui' WHEN FALSE THEN 'non' ELSE '' END AS colonne_2 FROM schema.table;Bonne soirée !
Thomas
Je précise que je travaille sur la mise en forme d'une vue. D'après mes recherches, il est possible d'utiliser ALTER TABLE pour une vue...
Bonjour,
Merci pour ces conseils. Le problème est que le CASE...END créé une colonne case supplémentaire. Caster la colonne permet d'afficher en toutes lettres « true » ou « false ». Aucune de ces solutions ne me permet de créer une colonne dans ma vue qui comporte les valeurs « oui » ou « non » (à moins que je puisse renommer la colonne case créée).
Quelqu'un voit-il une solution à cette situation ?
Merci beaucoup d'avance !
Thomas
Bonjour,
Merci pour votre réponse. En effet, j'ai testé to_char mais je n'arrive pas à l'utiliser correctement pour mettre à jour ma vue :
ALTER TABLE schema.vue ALTER COLUMN date USING to_char(date, 'dd/mm/yyyy');Le code ci-dessus ne marche pas... Je ne trouve pas réponse dans la doc pour redéfinir le contenu d'une colonne.
Edit :
ALTER TABLE schema.vue ALTER COLUMN date TYPE varchar(255);
UPDATE schema.vue SET date = to_char(date, 'dd/mm/yyyy');Message d'erreur obtenu :
ERREUR: « vue » n'est ni une table, ni un type composite, ni une table distante
Merci encore !
Thomas
Bonjour,
J'ai une vue qui me sert à alimenter des fiches de consultation d'objets cartographiques sur un site Web. Le format date affiché est de type yyyy-mm-dd. Or, je souhaiterais que la vue puisse afficher un autre format par souci de lisibilité pour les internautes, par exemple le format dd-mm-yyyy voire dd/mm/yyyy. Est-il possible de modifier l'apparence de la date dans la vue, sans pour autant toucher au format interne du SGBD ?
De la même manière : une colonne de type booléen qui affiche « f » ou « t » dans la vue pourrait-elle être améliorée en affichant « oui » ou « non » ?
Merci pour votre aide !
Thomas
Bon, c'est un peu compliqué à expliquer mais oui il y a bien une erreur de modélisation que je ne peux prendre le temps de corriger dans l'immédiat. Cette solution me permet temporairement de contourner le problème... Merci pour votre aide !
Thomas
Bonjour,
Dans ce cas, une règle conviendrait mieux ? Si oui, serait-il possible de me donner un exemple simple (maintenir une colonne avec toujours la même valeur) ?
Merci encore pour votre aide !
Thomas