Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#76 Re : PgAdmin3 » Se connecter sur pgadmin3 avec un username/password » 29/03/2017 12:35:24
Il suffit de créer des "enregistrements de serveur" avec les utilisateurs différents ou bien j'ai mal compris la question ?
#77 Re : PL/pgSQL » fonction qui renvoie une table » 20/02/2017 11:07:05
Pour la fonction ce serait quelque chose du style (non testé):
CREATE OR REPLACE FUNCTION public.sig_count3(v_table_source CHARACTER VARYING, v_table_dest character varying)
RETURNS TABLE (plandxf CHARACTER VARYING, nb_destination INTEGER, nb_source INTEGER) AS
$BODY$
BEGIN
RETURN QUERY EXECUTE FORMAT('select
%I.plandxf as plandxf,
count(distinct %I.gid) as nb_destination,
count(distinct %I.gid) as nb_source
from %I
left join %I
on %I.plandxf = %I.plandxf
group by %I.plandxf',v_table_dest,v_table_dest,v_table_source,v_table_dest,v_table_source,v_table_source,v_table_dest,v_table_dest);
END
$BODY$
LANGUAGE plpgsql;qui pourrait être utilisée ainsi
select * from sig_count3('matable2','matable1') UNION select * from sig_count3('matable2','matable3');#78 Re : PL/pgSQL » fonction qui renvoie une table » 20/02/2017 09:42:06
Bonjour,
Cela ne répond pas exactement à la question sur la fonction, mais une solution est de faire une UNION de requêtes.
select
matable1.plandxf as plandxf,
count(distinct matable1.gid) as table_destination,
count(distinct matable2.gid) as table_source
from monschema.matable1
left join monschema.matable2
on matable2.plandxf=matable1.plandxf
group by matable1.plandxf
UNION
select
matable3.plandxf as plandxf,
count(distinct matable3.gid) as table_destination,
count(distinct matable2.gid) as table_source
from monschema.matable3
left join monschema.matable2
on matable2.plandxf=matable3.plandxf
group by matable3.plandxf
UNION
select
matable4.plandxf as plandxf,
count(distinct matable4.gid) as table_destination,
count(distinct matable2.gid) as table_source
from monschema.matable4
left join monschema.matable2
on matable2.plandxf=matable4.plandxf
group by matable4.plandxfAvec :
table source: matable2
tables destination : matable1, matable3, matable4
Avec une fonction, pour avoir un tableau de synthèse, il faudra de toute façon faire une UNION de requêtes
#79 Re : Général » insertion données dans une table » 20/02/2017 00:37:02
Le copier/coller est utilisable en double cliquant au préalable sur la cellule devant recevoir la donnée. mais il n'est pas possible d'affecter plusieurs cellules en bloc par copier/coller et cela perd donc de son intérêt.
Il faut passer par une requête UPDATE pour faire des affectations en bloc (ce qui est un peu moins simple mais beaucoup plus puissant).
#80 Re : Général » insertion données dans une table » 17/02/2017 00:33:11
Votre perplexité me laisse dubitatif ...
Si vous consultez la doc, vous verrez que "serial" est en fait un pseudo-type qui permet d'avoir une incrémentation automatique d'une valeur entière (un numéro de série). Le fait de définir manuellement (par copier/coller ou autre moyen) la valeur d'un telle colonne perturberait ce mécanisme et conduirait tôt ou tard à un doublon.
Et le type "serial" est très souvent utilisé pour définir une clé primaire ("bigserial" également).
C'est pour cela que PG Admin affiche cette alerte et que Julien trouve à juste titre qu'il est mieux de ne pas pouvoir la désactiver.