A voir également:
- Access reinitialiser numero auto
- [ACCESS] remettre à zero l'id auto-increment ✓ - Forum - Programmation
- Oracle create table id auto increment ✓ - Forum - Oracle
- Remettre a zero un pc - Guide
- Remettre a zero un iphone - Guide
- Remettre a zero xbox 360 - Conseils pratiques - Consoles
11 réponses
FabDev92
Bonjour,
j'ai une solution qui n'est pas par requete SQL, mais une fonctionalité d'ACCESS :
Quand la table a été vidée de ses tuples, dans le menu "Outils", on peut utiliser "Utilitaires de bases de données" -> "Compacter une base de données"
=> Ca remet à 0 le compteur des champs autoincrément.
ATTENTION : ca peut être dangereux si la table contient encore des tuples, car le champ autoincrément repart à 0 et pourra un jour retomber sur une valeur déjà utilisée, d'où un pb si ce meme champ fait partie de la clé primaire
j'ai une solution qui n'est pas par requete SQL, mais une fonctionalité d'ACCESS :
Quand la table a été vidée de ses tuples, dans le menu "Outils", on peut utiliser "Utilitaires de bases de données" -> "Compacter une base de données"
=> Ca remet à 0 le compteur des champs autoincrément.
ATTENTION : ca peut être dangereux si la table contient encore des tuples, car le champ autoincrément repart à 0 et pourra un jour retomber sur une valeur déjà utilisée, d'où un pb si ce meme champ fait partie de la clé primaire
Signaler
Dodino
merci frangin
Jean_Jacques
- Messages postés
- 1045
- Date d'inscription
- mercredi 30 avril 2008
- Statut
- Membre
- Dernière intervention
- 5 mars 2014
Bonjour,
Je ne connais qu'une manip pour obtenir le résultat recherché.
- Sélectionner la table concernée
- ctrl+C puis ctrl+V
- Attribuer un nom arbitraire
- Choisir l'option structure uniquement
Il suffit alors de substituer à l'ancienne le nouvelle table ainsi créée
Ça dépanne bien
Bonne journée
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
Je ne connais qu'une manip pour obtenir le résultat recherché.
- Sélectionner la table concernée
- ctrl+C puis ctrl+V
- Attribuer un nom arbitraire
- Choisir l'option structure uniquement
Il suffit alors de substituer à l'ancienne le nouvelle table ainsi créée
Ça dépanne bien
Bonne journée
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
Christian
Bonjour
C'est très simple . Tu affiches ta table en mode création , tu supprimes le champ comportant le N° auto et tu le recrais avec le même nom . Tu vas redemarer à zéro . Par sécurité avant de faire cette manip , fais une sauvegarde .
Christian
C'est très simple . Tu affiches ta table en mode création , tu supprimes le champ comportant le N° auto et tu le recrais avec le même nom . Tu vas redemarer à zéro . Par sécurité avant de faire cette manip , fais une sauvegarde .
Christian
almux
- Messages postés
- 19
- Date d'inscription
- mercredi 25 février 2009
- Statut
- Membre
- Dernière intervention
- 16 décembre 2013
Hello,
J'ai tenté l'opération... Maintenant, je devrais remettre un champs auto-incrémenté en première position de la table... Mais je n'y arrive pas!
Cela refuse de mettre l'auto-increment:
Erreur
requête SQL:
ALTER TABLE `contactlivre_1` CHANGE `ref_com` `ref_com` VARCHAR( 8 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL AUTO_INCREMENT
MySQL a répondu:
#1063 - Incorrect column specifier for column 'ref_com'
Que faut-il faire?
AU SECOURS!!!!! Aaaaaaaargl!
RESOLUT: Il ne FALLAIT PAS METTRE VARCHAR... mais INT !!!!!!!
Ouf!
;)
J'ai tenté l'opération... Maintenant, je devrais remettre un champs auto-incrémenté en première position de la table... Mais je n'y arrive pas!
Cela refuse de mettre l'auto-increment:
Erreur
requête SQL:
ALTER TABLE `contactlivre_1` CHANGE `ref_com` `ref_com` VARCHAR( 8 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL AUTO_INCREMENT
MySQL a répondu:
#1063 - Incorrect column specifier for column 'ref_com'
Que faut-il faire?
AU SECOURS!!!!! Aaaaaaaargl!
RESOLUT: Il ne FALLAIT PAS METTRE VARCHAR... mais INT !!!!!!!
Ouf!
;)
xdiz
- Messages postés
- 108
- Date d'inscription
- jeudi 3 janvier 2008
- Statut
- Membre
- Dernière intervention
- 19 décembre 2012
Salut,
Si c'est vraiment la seule alors, je vais faire ce que tu dis ;)
Merci A+
Si c'est vraiment la seule alors, je vais faire ce que tu dis ;)
Merci A+
Jean_Jacques
- Messages postés
- 1045
- Date d'inscription
- mercredi 30 avril 2008
- Statut
- Membre
- Dernière intervention
- 5 mars 2014
Xdiz,
Je m'étonne qu'aucun autre contributeur n'ait proposé mieux ....
Une méthode plus .. disons "carrée" m'aurait bien plu.
En attendant mieux, ma solution devra bien être considérée comme la meilleure.
En fait je suis quelque peu déçu. A suivre ..
En tout cas merci pour le retour d'information
A+
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
Je m'étonne qu'aucun autre contributeur n'ait proposé mieux ....
Une méthode plus .. disons "carrée" m'aurait bien plu.
En attendant mieux, ma solution devra bien être considérée comme la meilleure.
En fait je suis quelque peu déçu. A suivre ..
En tout cas merci pour le retour d'information
A+
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
xdiz
- Messages postés
- 108
- Date d'inscription
- jeudi 3 janvier 2008
- Statut
- Membre
- Dernière intervention
- 19 décembre 2012
Moi aussi j'aurai aimer avoir mieux sans vouloir t'offencer ... car ta méthode est un peu bricolée ;)
Attendons un peu qu'un professionnel ACCESS arrive sur le topic :)
Attendons un peu qu'un professionnel ACCESS arrive sur le topic :)
xdiz
- Messages postés
- 108
- Date d'inscription
- jeudi 3 janvier 2008
- Statut
- Membre
- Dernière intervention
- 19 décembre 2012
Salut Fab, je l'ai fait également, mais il n'existe pas en langage SQL de solutions pour régler ce problème pour Access.
Au final on peut que compacter ou copier/coller la structure des tables.
Merci quand même ;)
Au final on peut que compacter ou copier/coller la structure des tables.
Merci quand même ;)
jouan_a
Yop,
Bah j'ai peut être un truc plus simple
pour remetre ton auto-incrémentation a zéro en SQL
tu fait :
INSERT INTO ta_table (column1, column2, ..., auto-incr) VALUES (valeur1, valeur2, ..., 0)
tu devra peut être mettre plusieur valeurs si tu as des champs obligatoires
auto-incr c'est le champ d'auto-incrémentation que tu as tu mes 0
ensuite tu fait
DELETE FROM ta_table WHERE auto-incr = 0
et comme sa ton premier enregistrement est a 1
Bah j'ai peut être un truc plus simple
pour remetre ton auto-incrémentation a zéro en SQL
tu fait :
INSERT INTO ta_table (column1, column2, ..., auto-incr) VALUES (valeur1, valeur2, ..., 0)
tu devra peut être mettre plusieur valeurs si tu as des champs obligatoires
auto-incr c'est le champ d'auto-incrémentation que tu as tu mes 0
ensuite tu fait
DELETE FROM ta_table WHERE auto-incr = 0
et comme sa ton premier enregistrement est a 1
michel_m
- Messages postés
- 16362
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 4 janvier 2021
Bonjour,
Pour compacter la base il faut cocher la bibliothèque JRO dans VBE outils-ref Microsoft Jet and Replication Object .x library
Sub raz_autoincrement()
Dim je as new JRO.jetengine
Je.compactdatabase "Chemin et nomde la baseanettoyer", datasource "cheminetnom d'unebase temporaire"
kill "Chemin et nomde la baseanettoyer"
Name "cheminetnom d'unebase temporaire" as "Chemin et nomde la baseanettoyer"
end sub
en "clair"?
on compacte la base sous un nomtemporaire
on supprime la base d'origine
on renomme la base nomtemporaire en nom de la base d'origine
Ai-je besoin de signaler qu'il est plus que prudent de faire une copie de la base avant toute chose et de s'entrainer avant avec des basses bidon
cette procédure consomme beaucoup d'adrénaline chez le programmeur...
Comme quoi la méthode manuelle décrite par Fab est la + sensée surtout quand il s'agit, comme ici, de nettoyer après essai (donc procédure unique)
Pour compacter la base il faut cocher la bibliothèque JRO dans VBE outils-ref Microsoft Jet and Replication Object .x library
Sub raz_autoincrement()
Dim je as new JRO.jetengine
Je.compactdatabase "Chemin et nomde la baseanettoyer", datasource "cheminetnom d'unebase temporaire"
kill "Chemin et nomde la baseanettoyer"
Name "cheminetnom d'unebase temporaire" as "Chemin et nomde la baseanettoyer"
end sub
en "clair"?
on compacte la base sous un nomtemporaire
on supprime la base d'origine
on renomme la base nomtemporaire en nom de la base d'origine
Ai-je besoin de signaler qu'il est plus que prudent de faire une copie de la base avant toute chose et de s'entrainer avant avec des basses bidon
cette procédure consomme beaucoup d'adrénaline chez le programmeur...
Comme quoi la méthode manuelle décrite par Fab est la + sensée surtout quand il s'agit, comme ici, de nettoyer après essai (donc procédure unique)
pirmax
- Messages postés
- 481
- Date d'inscription
- vendredi 20 octobre 2006
- Statut
- Membre
- Dernière intervention
- 25 juillet 2014
Bonjour !
Pour remettre à zéro l'ID de ta table, il suffit juste de faire vider après avoir sauvegardé le contenu ^^
phpMyAdmin enregistrera la plus grande ID existante et s'en servira pour les prochaines insertion !
Voilà,
Maxence
Pour remettre à zéro l'ID de ta table, il suffit juste de faire vider après avoir sauvegardé le contenu ^^
phpMyAdmin enregistrera la plus grande ID existante et s'en servira pour les prochaines insertion !
Voilà,
Maxence
almux
Merci Maxence,
Effectivement, la remise à zéro fonctionne parfaitement.
En premier lieu, j'avais effacé le champ. Mais en le recréant j'avais fais deux erreurs:
1) Oublié de décocher le "placer après le premier champ" (!)
2) Pas mis la bonne valeur (int) (!!)
Depuis, plus de problèmes. ;)
Almux
Effectivement, la remise à zéro fonctionne parfaitement.
En premier lieu, j'avais effacé le champ. Mais en le recréant j'avais fais deux erreurs:
1) Oublié de décocher le "placer après le premier champ" (!)
2) Pas mis la bonne valeur (int) (!!)
Depuis, plus de problèmes. ;)
Almux