Gestion des tables Mysql

Fermé
nono - 18 août 2005 à 11:23
 nono - 18 août 2005 à 16:00
Bonjour, j'ai un petit souci avec ma base de donnée, voilà je voulais effacer le premier enregistrement de la table, donc j'ai écrit ce script sous php:
<?
$connexion=mysql_connect("localhost","root") or die ("impossible de se connecter au serveur");
$select=mysql_select_db("database") or die ("j'arrive pas à atteindre la table demandée");
print ("Maintenant nous allons effacer un enregistrement de la table<br>");
$query = " delete from Etudiant where id_etudiant = 1";
$result =mysql_query($query);
print (" l'enregistrement Effacé ");
?>
Tous s'est bien passé, comme j'ai défini pour id_etudiant(clé primaire) de type "auto_increment" je croyais que quand je supprime un enregistrement dans la table le deuxième prendra automatiquement la valeur 1 alors qu'il ne s'agit pas du tout comme je pense... (c'est à dire que le deuxième reste à la place de deuxième enregistrement et non pas celle du premier) comment je peut faire changer automatiquement les valeur de "id_etudiant"? es-ce que c'est dans le reglage de MysqlAdmin ou au niveau de code?
Merci beaucoup d'avance !
A voir également:

2 réponses

StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
18 août 2005 à 11:40
Au niveau du code.
Il prend le max(id) et l'incremente a chaque nouvel enreg.
L'id est UNIQUE, donc si une table pointe sur le champ qui a comme Id=2 , le jour ou tu supprime un enreg, et qu'il te decale tous tes enregs, la table va pointer sur le mauvais champs !
Donc c'est une mauvaise idee de remettre les Id bien ordonnés.

Sinon, il te faut faire un script PHP pour remettre tous tes id comme il faut. SQL ne sait pas faire et comme je te l'ai expliqué, il n'y a pas d'utilite a faire ca.


0
Merci beaucoup.
chao!
0