Requete mysql insert

Résolu/Fermé
ulquiorra Messages postés 31 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 29 juillet 2009 - 11 sept. 2007 à 22:20
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 11 sept. 2007 à 23:59
Bonsoir a tous

je voudrai creer une requete insert sur mysql de tel sorte à ce que je peux préciser dans cette requete la position d'insertion dans la table (debut, millieu ...)

par defaut la requete insert insere les données à la fin de la table

merci de me répondre

4 réponses

jee pee Messages postés 40986 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 2 avril 2025 9 575
11 sept. 2007 à 22:42
bonsoir,

l'endroit où un système de gestion de base de données decide d'enregistrer les données dans une table ne peut être choisi. Cela notamment parce c'est normalement sans importance pour la restitution.

si tu désires qu'en restitution les données te soient présentées dans un certain ordre, il faut par exemple que tu créées un champ qui contiendra une valeur qui corresponde à la position ou l'ordre que tu veux en restitution. Si tu as un champ "place" tu peux en creant chaque ligne lui attribuer une valeur 1, 400 , 45, ...

et en lecture , à la fin de ton ordre "select", tu indiques : order by place

le tri peut aussi être réalisé sur un autre champ deja existant, un nom, un age, ...

cdt
0
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
11 sept. 2007 à 22:48
Bonsoir Ulquiorra,

Depuis le temps que je manipule des bases de données je n'ai jamais rencontré de SGBD permettant de choisir l'ordre d'insertion d'un tuple au sein d'une table. Ce que tu peux faire par contre c'est ajouter un champ "ordre" dans ta table, ainsi dans tes futurs select tu trieras tes données en fonction de la valeur de ce champ, mais évidemment c'est une gestion supplémentaire parce qu'il faudra bien penser à tout décaler lors d'une insertion. ;-)
0
ulquiorra Messages postés 31 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 29 juillet 2009
11 sept. 2007 à 23:23
Merci beaucoup pour votre reponse

j'ai compris, donc c'est impossible de le faire sauf que si j'utilise un champ d'ordre et que je modifie la position de mes données selon ce champ,
c'est une tache un peu penible mais je ne peux rien y faire :)

merci encore
0
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
11 sept. 2007 à 23:59
Nous avons été deux à répondre la même chose en un temps très court ^^

Pénible oui mais impossible non. :-D Un "simple" "update table set place=place+1 where place >= $nouvellePlace" avant chaque insertion (et l'inverse, donc place=place-1, après la suppression) mais oui il faut le faire explicitement et sans s'emmêler les pincaux ^^

En tout cas bon couarage ! ;-)
0

Discussions similaires