Vous n'êtes pas identifié(e).
Pages : 1
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 ?
si non y'a t-il une autre solution ? j'arrive pas à le résoudre
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
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
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 !!
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
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 !
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 ??
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 !!
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
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
merci arthurr pour ton aide appréciée
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
merci pour ta réponse Geo-x,
je l'ai essayé : 
select (465551/1000) ::numeric(7,3);
465.000   et non pas 465.551
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
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
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
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()
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