Requete mysql insert

Résolu
ulquiorra Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
Posotaz Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   -
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 41513 Date d'inscription   Statut Modérateur Dernière intervention   9 716
 
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   Statut Membre Dernière intervention   225
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   225
 
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