[mysql] peut-on change l'id d'un enregistrement dans une table

peut-on change l'id d'un enregistrement dans une table [mysql] - PHP - Programmation

Marsh Posté le 02-07-2003 à 23:07:08    

bonjour,
peut-on change l'id d'un enregistrement dans une table à id unique auto-incrémenté?
 
jespere etre claire :)
 
++
ggp

Reply

Marsh Posté le 02-07-2003 à 23:07:08   

Reply

Marsh Posté le 02-07-2003 à 23:20:14    

oui, bien sur (à condition de pas lui affecter une valeur déja utilisée)
Mais si tu lui donnes une valeur > l'auto-incrément, celui-ci sera aussi augmenté.


Message édité par mrbebert le 02-07-2003 à 23:20:32
Reply

Marsh Posté le 02-07-2003 à 23:24:37    

mm mouai,  
mais l'id sera obligatoirement autoincrémenté?
 
car c pour boucher des trou si vous voyiez ske je veux dire
donc je veux pas que ca en fasse a la fin de la table

Reply

Marsh Posté le 02-07-2003 à 23:31:58    

Si tu fixes l'ID (que ce soit par un UPDATE ou un INSERT), mysql utilisera cette valeur.
(sauf si cet ID est déja utilisé, ce qui provoque une erreur).
 
L'ID n'est calculé automatiquement que dans le cas d'une insertion où sa valeur n'est pas précisée.

Reply

Marsh Posté le 02-07-2003 à 23:35:55    

okay jespere que ca va pa tout faire foirer, c pour une db importante :)

Reply

Marsh Posté le 02-07-2003 à 23:39:45    

Il faut bien vérifier la partie WHERE de la requête avant de valider :whistle:

Reply

Marsh Posté le 03-07-2003 à 08:07:02    

gogoprog a écrit :


car c pour boucher des trou si vous voyiez ske je veux dire
donc je veux pas que ca en fasse a la fin de la table


 
une remarque. L'id d'un record est censé etre unique à jamais. Y compris quand ce record a été effacé de la base.
 
Exemple: tu crées un record avec un id quelconque 123. Tu as des clients qui utilisent et stockent cet id dans leur système à eux (ou bien un système de cache par exemple). Tu effaces le record et tu as assignes un autre record à 123.
 
Ton client va changer/récupérer l'info dans 123. Si un record existe il ne peut pas savoir que ca représente une autre information. Par contre si il n'existe pas il est sur que le record qu'il avait en cache a été effacé
 
(enfin ca c'est juste en passant)


---------------
Just because you feel good does not make you right
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed