A voir également:
- Récuperer l'id auto increment supprimé
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Récupérer photo instagram - Guide
- Recuperer mon compte gmail - Guide
8 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
8 oct. 2009 à 19:44
8 oct. 2009 à 19:44
Salut,
on peut réinitialiser l'incrémentation du fait qu'elle recommence de cet id, au lieu de lui ajouter +1 ??
Oui, c'est possible.
Il n'y a rien à récupérer, comme c'est un champ automatique il s'incrémente tout seul.
Mais après chaque suppression tu dois faire ALTER TABLE donnee AUTO_INCREMENT=0 pour réinitialiser.
Voici une petite démonstration.
on peut réinitialiser l'incrémentation du fait qu'elle recommence de cet id, au lieu de lui ajouter +1 ??
Oui, c'est possible.
Il n'y a rien à récupérer, comme c'est un champ automatique il s'incrémente tout seul.
Mais après chaque suppression tu dois faire ALTER TABLE donnee AUTO_INCREMENT=0 pour réinitialiser.
Voici une petite démonstration.
mysql> create database personne; Query OK, 1 row affected (0.00 sec) mysql> use personne; Database changed mysql> create table donnee(id INT NOT NULL auto_increment PRIMARY KEY,nom varchar(50),prenom varchar(50)); Query OK, 0 rows affected (0.01 sec) mysql> insert into donnee values('','AZERTY','toto'); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> insert into donnee values('','QWERTY','titi'); Query OK, 1 row affected, 1 warning (0.01 sec) mysql> insert into donnee values('','BLABLA','tata'); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> select * from donnee; +----+--------+--------+ | id | nom | prenom | +----+--------+--------+ | 1 | AZERTY | toto | | 2 | QWERTY | titi | | 3 | BLABLA | tata | +----+--------+--------+ 3 rows in set (0.00 sec) mysql> delete from donnee where prenom='tata'; Query OK, 1 row affected (0.00 sec) mysql> delete from donnee where prenom='titi'; Query OK, 1 row affected (0.00 sec) mysql> select * from donnee; +----+--------+--------+ | id | nom | prenom | +----+--------+--------+ | 1 | AZERTY | toto | +----+--------+--------+ 1 row in set (0.00 sec) mysql> ALTER TABLE donnee AUTO_INCREMENT=0; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> insert into donnee values('','QWERTY','titi'); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> select * from donnee; +----+--------+--------+ | id | nom | prenom | +----+--------+--------+ | 1 | AZERTY | toto | | 2 | QWERTY | titi | +----+--------+--------+ 2 rows in set (0.00 sec) mysql>
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
8 oct. 2009 à 13:01
8 oct. 2009 à 13:01
Bonjour,
Ce que tu veux faire est impossible avec un champ auto incrémenté.
De plus l'Id est un identifiant unique d'une table qui peut être relier à d'autres tables. Vouloir réutiliser un Id supprimé risque d'entrainer des problèmes.
;o)
Ce que tu veux faire est impossible avec un champ auto incrémenté.
De plus l'Id est un identifiant unique d'une table qui peut être relier à d'autres tables. Vouloir réutiliser un Id supprimé risque d'entrainer des problèmes.
;o)
Merci pour ta réponse; Oui vous avez raison j'ai cet id utilisé dans une autre table mais lors de la suppression de l'enregistrement je le supprime même de l'autre table et sa valeur deviendra = 0, alors on peut pas trouver une solution?
Et si l'enregistrement supprimé était le dernier, on peut réinitialiser l'incrémentation du fait qu'elle recommence de cet id, au lieu de lui ajouter +1 ??
Et si on vient de supprimer un enregistrement (qui n'est pas le dernier) on peut pas récupérer sur le champs son id et le réutiliser dans le nouveau enregistrement inséré??
Désolée pour mes question nombreuses, mais vraiment j'ai besoin de l'aide
Merci encore une fois
Et si l'enregistrement supprimé était le dernier, on peut réinitialiser l'incrémentation du fait qu'elle recommence de cet id, au lieu de lui ajouter +1 ??
Et si on vient de supprimer un enregistrement (qui n'est pas le dernier) on peut pas récupérer sur le champs son id et le réutiliser dans le nouveau enregistrement inséré??
Désolée pour mes question nombreuses, mais vraiment j'ai besoin de l'aide
Merci encore une fois
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
8 oct. 2009 à 13:22
8 oct. 2009 à 13:22
La réponse est non. Un champ auto incrémenté n'est pas modifiable. Tu peux effectivement récupérer l'Id mais tu ne pourras pas faire un insert en utilisant cet Id ...
Je ne vois pas en quoi c'est génant d'avoir des numéros d'Id qui ne se suivent pas. Mais bon tu dois certainement le savoir ^^
;o)
Je ne vois pas en quoi c'est génant d'avoir des numéros d'Id qui ne se suivent pas. Mais bon tu dois certainement le savoir ^^
;o)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
8 oct. 2009 à 19:49
8 oct. 2009 à 19:49
Re,
Voilà ce qui se passe si je n'utilise pas ALTER TABLE donnee AUTO_INCREMENT=0
Le id après deux suppression sera 4 et pas 2. (voir en gras plus bas)
Voilà ce qui se passe si je n'utilise pas ALTER TABLE donnee AUTO_INCREMENT=0
Le id après deux suppression sera 4 et pas 2. (voir en gras plus bas)
mysql> create database personne; Query OK, 1 row affected (0.00 sec) mysql> use personne; Database changed mysql> create table donnee(id INT NOT NULL auto_increment PRIMARY KEY,nom varchar(50),prenom varchar(50)); Query OK, 0 rows affected (0.00 sec) mysql> insert into donnee values('','AZERTY','toto'); Query OK, 1 row affected, 1 warning (0.01 sec) mysql> insert into donnee values('','QWERTY','titi'); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> insert into donnee values('','BLABLA','tata'); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> select * from donnee; +----+--------+--------+ | id | nom | prenom | +----+--------+--------+ | 1 | AZERTY | toto | | 2 | QWERTY | titi | | 3 | BLABLA | tata | +----+--------+--------+ 3 rows in set (0.00 sec) mysql> delete from donnee where prenom='tata'; Query OK, 1 row affected (0.00 sec) mysql> delete from donnee where prenom='titi'; Query OK, 1 row affected (0.00 sec) mysql> select * from donnee; +----+--------+--------+ | id | nom | prenom | +----+--------+--------+ | 1 | AZERTY | toto | +----+--------+--------+ 1 row in set (0.00 sec) mysql> insert into donnee values('','QWERTY','titi'); Query OK, 1 row affected, 1 warning (0.01 sec) mysql> select * from donnee; +----+--------+--------+ | id | nom | prenom | +----+--------+--------+ | 1 | AZERTY | toto | | 4 | QWERTY | titi | +----+--------+--------+ 2 rows in set (0.00 sec) mysql>
Vraiment Merci lami20j, c'est très utile comme commande pour MySQL, je vais testé tout de suite pour mon cas merci encore une fois
D'accord, vraiment merci pour la précision, le fait d'avoir des numéros d'Id qui ne se suivent pas ne me gène plus, mais ca gène les utilisateurs de site que je réalise en php et j'utilise une base de données Mysql.
ce qui m'a rendu faisable le truc, c'est que je peux le faire manuellement au niveau de l'ongle Opérations => AUTO_INCREMENT là où je précise l'id du prochain enregistrement que je saisie a partir de site que je réalise.
Et c'est pour ca je cherche une commande qui peut gérer cela automatiquement, on lui donnant une variable.
ce qui m'a rendu faisable le truc, c'est que je peux le faire manuellement au niveau de l'ongle Opérations => AUTO_INCREMENT là où je précise l'id du prochain enregistrement que je saisie a partir de site que je réalise.
Et c'est pour ca je cherche une commande qui peut gérer cela automatiquement, on lui donnant une variable.