Vous n'êtes pas identifié(e).
Bonjour à tous,
Je voulais savoir si via postgres on pouvait faire ceci :
Si dans une table A on un champs=x alors dans la table B on a création de x lignes!
Et si oui quelle ligne de commande sous le panneau SQL le permet!
Merci
Hors ligne
Une fonction pour faire ça je pense, mais c'est pas vraiment compréhensible ce que vous dites.
Hors ligne
Bonjour,
votre demande n'est pas très claire.
A tout hasard, une requête du genre pourrait vous aider :
INSERT INTO b (colonne) SELECT champ, ... FROM a;
Julien.
https://rjuju.github.io/
Hors ligne
@rjuju : désolée que mes explications ne soient pas très claires...alors je ne veux pas insérer des données mais créer des lignes, je vais donner un exemple plus précis :
j'ai crée une table "echantillonnage" qui contient un champ "nombre de mammifère", c'est un champ numéric.
A cette table est relier une autre table "mammifère" qui contiendra tous les mammifères ( un id par mammifère) ainsi que leur espèce, stade...
Je voudrai que quand nb_mam=6 dans la table echantillonnage alors 6 lignes (6 id) soient automatiquement créer dans la table "mammifère"
Suis je un peu plus plus clair?
Hors ligne
C'est plus compréhensible.
Mais quel est l'intérêt de créer des lignes dans la table "mammifère"? Quelles valeurs voulez-vous mettre dans ces lignes au moment où vous les créez ?
Hors ligne
Quel intéret : éviter de devoir créer 10000 lignes à la mains et pour que la commande le fasse d'elle même!
Pour les valeurs, on veut attribuer un numéro à chaque mammifère!
Hors ligne
vous êtes pas en train de réfléchir à l'envers ?
en fait vous voulez connaitre le nombre de mammifères dans une table et le détail dans une autre non ?
donc faire une fonction qui fait un count(*) en faisant l'insert dans échantillonnage non ?
Hors ligne
ok vu votre réponse oubliez ce que j'ai mis plus haut , l'insertion ds nb_mam se ferait comment ?
Dernière modification par kenrio (06/07/2012 16:48:49)
Hors ligne
Le nombre de mammifère est dans la table échantillonnage et je veux le détail dans la table mammifère
c'est possible avec la clause COUNT?
Hors ligne
non, je pensais à l'inverse moi mais c'est pas ce que vous recherchez.
Le truc que j'aimerais savoir c'est comment vous remplissez vos tables ?
Hors ligne
nb_mam est déjà renseigner et je veux qu'en fonction des valeurs les lignes soient créées dans la table mammifère
Hors ligne
votre table échantillonnage sera pleine mais la table mammifère vide ?
Si c'est ça, je fais une procédure stockée, qui quand je la lance regarde le nombre de mammifère et insert le nombre de ligne avec une boucle et donc tous les autres champs vide ou avec un default.
mais c'est un oneshot par contre
Dernière modification par kenrio (06/07/2012 16:58:30)
Hors ligne
Oui c'est ca...par contre je débute..procédure stockée?
Hors ligne
une fonction, la doc de postgresql : http://www.postgresql.org/docs/9.1/stat … ction.html
y a peut être une meilleure façon ou plus simple mais je vois pas trop
Hors ligne
votre table échantillonnage sera pleine mais la table mammifère vide ?
Si c'est ça, je fais une procédure stockée, qui quand je la lance regarde le nombre de mammifère et insert le nombre de ligne avec une boucle et donc tous les autres champs vide ou avec un default.
mais c'est un oneshot par contre
Cela n'a aucun sens de créer des lignes vides. Ou même juste avec un identifiant (une clé primaire).
J'ai vraiment l'impression qu'on met la charrue avant les boeufs : on cherche une solution à un problème technique tordu pour résoudre un problème réel qu'on ne connaît pas. ("on" = les personnes qui essaient d'aider)
hmahe44, pourquoi voulez-vous faire cela?
Et comment sera remplie la table "mammifere"? (à quel moment, et à partir de quelles données?).
Tant que vous ne répondrez pas à ces questions, nous allons tourner en rond, proposer des solutions complexes que vous aurez du mal à mettre en oeuvre et qui ne répondront pas, ou mal, à votre besoin.
Vous êtes débutante apparemment, ce qui explique que vous ne voyiez pas en quoi c'est tordu d'utiliser la base de cette manière. Il n'y a rien de mal à cela, mais s'il vous voulez qu'on vous aide, répondez à toutes les questions qu'on vous pose. Vous n'avez pas répondu à ma question de tout à l'heure.
Et faites attention également à mettre des points à la fin des phrases, et des majuscules au début : cela rend la lecture nettement plus facile. Merci.
Dernière modification par flo (06/07/2012 18:09:47)
Hors ligne
après a la place de null ou de default il peut mettre un serial, qui représentera le numéro de l'animal.
Mais oui on connait rien à la problématique...
en plus de la question de flo : y a t il une interface devant la base ?
Dernière modification par kenrio (06/07/2012 18:15:13)
Hors ligne
Tout dépend de la volumétrie finale, mais je pense que votre table echantillonage n'a pas de raison d'être. C'est juste le résultat d'un select count(id) from mammifere. Vous pouvez le stocker dans une vue si vous voulez, mais le garder en valeur calculée est sans doute beaucoup plus simple.
Comme le dit flo, c'est très vague. Avez-vous fait un mcd pour votre besoin ? Cela pourrait nous aider.
Julien.
https://rjuju.github.io/
Hors ligne