PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 12/03/2019 18:34:01

speedy_souris
Membre

Requete d'Insertion avec limit et offset

Bonjour à toutes et tous,

sur un systeme ubuntu 18.04 avec posgresql 10 et pgadmin III
je suis en formation d'application python,
dans un projet de la formation, il y a la simulation d'un gestion en ligne de plusieurs pizzerias
mon objectif c'est d'inserer la quantité en stock de 100 ingredients de pizza dans les  pizzerias
voici ma requete (pizzeria 1)qui fonctionne j'usqu'a 99 et au centieme element j'ai une erreur qui me returne la valeur NULL sur le 100 ingrédiient
alors que j'ai bien une 100eme ingredient

INSERT INTO stock (quantity,id_ingredient,id_pizzeria)
    VALUES

(361,(SELECT id FROM ingredient ORDER BY id LIMIT 1 OFFSET 1),
     (SELECT id FROM pizzeria ORDER BY id LIMIT 1 OFFSET 1)
),

(294,(SELECT id FROM ingredient ORDER BY id LIMIT 1 OFFSET 2),
     (SELECT id FROM pizzeria ORDER BY id LIMIT 1 OFFSET 1)
),

(172,(SELECT id FROM ingredient ORDER BY id LIMIT 1 OFFSET 3),
     (SELECT id FROM pizzeria ORDER BY id LIMIT 1 OFFSET 1)
),

-------------------------------------------------------

(762,(SELECT id FROM ingredient ORDER BY id LIMIT 1 OFFSET 99),
     (SELECT id FROM pizzeria ORDER BY id LIMIT 1 OFFSET 1)
),

(529,(SELECT id FROM ingredient ORDER BY id LIMIT 1 OFFSET 100),
     (SELECT id FROM pizzeria ORDER BY id LIMIT 1 OFFSET 1)
);

merci de m'aiguiller

Hors ligne

#2 12/03/2019 19:16:33

rjuju
Administrateur

Re : Requete d'Insertion avec limit et offset

OFFSET spécifie le nombre de ligne à ignorer, donc OFFSET 1 vous renvoie la 2ème ligne et OFFSET 100 la 101ème.


Celant étant dit, cette requête n'est certainement pas une bonne pratique.  Comment définissez-vous les quantités initialement ?

Hors ligne

#3 12/03/2019 19:40:13

speedy_souris
Membre

Re : Requete d'Insertion avec limit et offset

bonjour rjuju,
merci pour la clairification sur offset,
en fait c'est cette requete la definition initiale des quantités
est ce que du coté de 'FETCH' avec un 'WHERE' combiné
n'y aurait'il pas matiére à réfléchir ?

Dernière modification par speedy_souris (12/03/2019 19:51:52)

Hors ligne

#4 12/03/2019 22:55:36

rjuju
Administrateur

Re : Requete d'Insertion avec limit et offset

Je ne comprends pas, vous avez besoin d'initialiser votre table avec une quantité précise pour les ingrédients, en choisissant les ingrédients en fonction de leur rang de clé technique ?  Comment pouvez-vous savoir qu'il faut une quantité de 361 pour « le premier id d'ingrédient trouvé dans la table » ?  Soit il 'agit d'un import initial, et dans ce cas là autant mettre toutes les valeurs en durs et ajuster les séquences associées si besoin (comme le ferait une restauration), soit ce n'est pas le cas et dans ce cas je me demande toujours d'où vient 361 et comment vous l'associez avec un ingrédient précis.

Hors ligne

Pied de page des forums