Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : PL/pgSQL » inserer dans une table à partir de plusieurs tables » 19/05/2014 17:14:20
le seul lien entre table4, table2 et table 3 est qu'ils contiennent des données qui seront insérées dans la table1
donc je fais insert puis update et cela via un trigger ou je récupére le résultat du mise à jour dans un curseur ?
#2 Re : PL/pgSQL » inserer dans une table à partir de plusieurs tables » 19/05/2014 16:13:54
si non y'a t-il une autre solution ? j'arrive pas à le résoudre
#3 Re : PL/pgSQL » inserer dans une table à partir de plusieurs tables » 19/05/2014 13:00:58
merci rjuju pour tes explications
comment faire alors pour remplir une table à partier de plusieurs tables
et si j'ai une autre table4(col1,col3)
insert into table1(col1,col2,col3,col4,col4,col5,col6)
select col1,col2
from table4,table2
where table4.col1 = table2.col1
select col5 , col6
from table3,table4
where table2.col3 = table4.col3
#4 PL/pgSQL » inserer dans une table à partir de plusieurs tables » 19/05/2014 12:29:31
- tatou
- Réponses : 6
Bonjour Postgresql Pro
Je serais reconnaissante si tu peux m'aider
Je veux insérer dans une table des données à partie des autres tables
exple
j'ai une table1(col1,col2,col3,col4,col4,col5,col6)
et une table2(col1,col2)
table3(col3,col4,col5)
j'ai essayé avec ce bout du code mais pas de sucées :
insert into table1(col1,col2,col3,col4,col4,col5,col6)
select col2
from table2
where table2.col1 = table1.col1
select col5 , col6
from table2
where table2.col3 = table1.3
comment faire est ce je dois travailler avec les curseurs ?
merci pour ton aide appréciée
#5 Re : PL/pgSQL » Postgresql & cluster » 08/05/2014 14:44:03
merci pour ta réponse,
comment on peut le résoudre !! parceque je veux créer un cluster indépendemment des indexes ainsi quelle est l'utilité de créer cluster sur les indexes si on est limité par le fait que ne fait pas la maintenance des ordres !!
#6 PL/pgSQL » Postgresql & cluster » 08/05/2014 12:59:46
- tatou
- Réponses : 2
Bonjour postgreSQL pro,
je veux créer des tables clusters, est ce que c'est possible avec postgresql ainsi comment on peut augmenter la performance avec cluster
merci pour ton aide appréciée
#7 Re : PL/pgSQL » héritage , des tables , containtes clé étrangére » 02/05/2014 00:24:03
merci gleu pour ton aide
tu peux encore m'expliquer le concept partitionnement postgresql; j'ai cherché sur le site officiel du postgreSQFR mais j'arrive pas à le comprendre !
#8 Re : PL/pgSQL » héritage , des tables , containtes clé étrangére » 01/05/2014 19:54:39
merci gleu pour ces explications
alors tu me recommande de travailler avec les clés étrangéres tt en eliminat l'héritage et pour les indexes comment doit-on choisir les colonnes indexés ?
et concernant la répitition des données quel est son impact sur la performance de la base de données ??
#9 Re : PL/pgSQL » héritage , des tables , containtes clé étrangére » 01/05/2014 18:59:13
des requêtes imbriquées et des requets select paramétré
je vais insérer des données dans la tables fils alors la table mére sera remplie en respectant l'héritage
de mem je veux que les clés étrangéres seront héritées dans les tables fils
exple de requete :
select attribut1
from table (table dont le quel référence la table mére )
where clé_étrangére de la table fils = clé primaire de la table référencée // ça cause un erreur car la table fils n'hérite pas la clé étrangére !!
#10 Re : PL/pgSQL » héritage , des tables , containtes clé étrangére » 01/05/2014 17:48:42
merci gleu pour ta réponse
au fait j'ai choisi l'héritage pour éliminer la répétition des données puisque les données dans la table mére sont les mem dans les tables fils afin de perfomer la conception de la base de données alors je définis ainsi lec clés étrangéres dans la table mére ??
pour les données : quand je vais populer la table mére je veux que de mem les tables fils sera rempli avec les valeurs des champs table mére
#11 PL/pgSQL » héritage , des tables , containtes clé étrangére » 01/05/2014 16:23:43
- tatou
- Réponses : 9
Bonjour postgresql ¨Pro ,
J'aimerais concepter ma base de données en utilisant l'héritage j'éssaye avec un petit exemple :
---------------- Table: mere qui références à une table num et a deux fils--------------------------------
-- DROP TABLE mere;
CREATE TABLE mere
(
id serial NOT NULL,
num integer,
nbre integer,
CONSTRAINT mere_pkey PRIMARY KEY (id),
CONSTRAINT mere_num_fkey FOREIGN KEY (num)
REFERENCES num (num) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE mere
OWNER TO postgres;
------------------ Table: num------------------------------------
-- DROP TABLE num;
CREATE TABLE num
(
num integer NOT NULL,
CONSTRAINT num_pkey PRIMARY KEY (num)
)
WITH (
OIDS=FALSE
);
ALTER TABLE num
OWNER TO postgres;
-- -----------------------Table: fils1------------------------------------------------
-- DROP TABLE fils1;
CREATE TABLE fils1
(
-- Hérité(e) from table mere: id integer NOT NULL DEFAULT nextval('mere_id_seq'::regclass),
-- Hérité(e) from table mere: num integer,
-- Hérité(e) from table mere: nbre integer,
statu integer,
CONSTRAINT fils1_pkey PRIMARY KEY (id)
)
INHERITS (mere)
WITH (
OIDS=FALSE
);
ALTER TABLE fils1
OWNER TO postgres;
-- -----------------------------------Table: fils2-------------------------------------------------
-- DROP TABLE fils2;
CREATE TABLE fils2
(
-- Hérité(e) from table mere: id integer NOT NULL DEFAULT nextval('mere_id_seq'::regclass),
-- Hérité(e) from table mere: num integer,
-- Hérité(e) from table mere: nbre integer,
moy integer,
CONSTRAINT fils2_pkey PRIMARY KEY (id)
)
INHERITS (mere)
WITH (
OIDS=FALSE
);
ALTER TABLE fils2
OWNER TO postgres;
mon probléme est que les deux tables fils n'héritent pas la contrainte de la clé étrangére , ni les données de la table mere
je serais rreconnaissante si tu peux m'aider de le résoudre
merci d'avance pour ton aide appréciée
#12 Re : PL/pgSQL » fonction » 30/04/2014 11:38:31
merci arthurr pour ton aide appréciée
#13 Re : PL/pgSQL » fonction » 29/04/2014 14:24:51
merciii arthurr pour ta réponse alors ça veut qu'on doit définit le nombre 465551 comme étant décimal ?
et comme conséquence le code de ma fonction doit etre comme ça ?
CREATE FUNCTION unite_s ( xdecimal ) // au lieu de x integer on déclare x decimal
returns decimal (7,3)
AS
$corps$
Begin
return ( x /1000) ;
end;
$corps$
LANGUAGE PLPGSQL
#14 Re : PL/pgSQL » fonction » 29/04/2014 12:06:57
merci pour ta réponse Geo-x,
je l'ai essayé :
select (465551/1000) ::numeric(7,3);
465.000 et non pas 465.551
#15 PL/pgSQL » fonction » 29/04/2014 06:26:05
- tatou
- Réponses : 8
Bonjour PLPGSQL pro
j'aimerais faire une fonction qui me divise un entier par 1000 ci-dessous le code :
CREATE FUNCTION unite_s ( x integer)
returns numeric(6,3)
AS
$corps$
Begin
return ( x /1000) ;
end;
$corps$
LANGUAGE PLPGSQL
mais lors de l'exécution une erreur s'affiche:
ERREUR: champ numérique en dehors des limites
DETAIL: Un champ de précision 6 et d'échelle 3 doit être arrondi à une valeur
absolue inférieure à 10^3.
j'ai essayé avec : select 465551/1000 ::numeric(7,3);
il me renvoie : 465.5510000000000000 et moi je veux que 465.551 sitou comment faire plz
merci pour ton aide appréciée
#16 Re : PL/pgSQL » procédures stockées , trigger table temporaires » 25/04/2014 16:21:57
merci gleu pour ton aide
tu peux me donner un tutorial comment le faire j'ai cherché sur google mais j'arrive pas à le faire
#17 Re : PL/pgSQL » procédures stockées , trigger table temporaires » 25/04/2014 12:21:41
merci bcp gleu ça marche
une autre question si je veux faires des traitements sur les colonnes avant de populer la table public.emp
je définis une fonction exple convert_time()
et dans la fonction trigger je dois l'appeler ?
merci pour ton aide appréciée
#18 Re : PL/pgSQL » procédures stockées , trigger table temporaires » 25/04/2014 10:21:56
Bonjour gleu,
merci pour ta réponse voici l'erreur:
ERREUR: le contrôle a atteint la fin de la procédure trigger sans RETURN
CONTEXT: fonction PL/pgsql emp_stamp()
********** Erreur **********
ERREUR: le contrôle a atteint la fin de la procédure trigger sans RETURN
État SQL :2F005
Contexte : fonction PL/pgsql emp_stamp()
#19 PL/pgSQL » procédures stockées , trigger table temporaires » 24/04/2014 19:00:38
- tatou
- Réponses : 6
Bonjour,
Je dois utiliser les procédures stockées pour effectuer des transformations sur des données des tables temporaires afin de les stocker dans des tables qui seront persisté es par une application web ,
autre chose il me faut que après chaque insertion dans la table temporaire les données doivent suprimées pour laisser de place pour les nouvelles données
Ma question comment je dois le faire via un trigger after event insert et appliquer les changement sur les données via l'appel d'une procédure stockée
j'arrive pas à le faire
comme initiative je fais ça comme code :
REATE TABLE public.emp (
salaire integer,
date_dermodif timestamp,
utilisateur_dermodif text
);
CREATE TABLE brut.emp (
salaire integer,
date_dermodif timestamp,
utilisateur_dermodif text
);
CREATE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$
BEGIN
INSERT INTO public.emp
SELECT * from brut.emp ;
return NULL;
END;
$emp_stamp$ LANGUAGE plpgsql;
CREATE TRIGGER emp_stamp AFTER INSERT ON brut.emp
FOR EACH ROW EXECUTE PROCEDURE emp_stamp();
mais il m'affiche un erreur que pas de return
merci beaucoup pour votre aide appréciée
Pages : 1