11 Vote

SQLite: Réinitialiser AUTOINCREMENT

Question de Invité | 08/05/2021 à 13:32

J'ai une colonne ID dans ma base de données SQLite dans laquelle j'augmente automatiquement la valeur entière à l'aide d'AUTOINCREMENT dès qu'un nouvel enregistrement est inséré dans la table.

Cela fonctionne comme je veux. Cependant, je supprime fréquemment cette table et dès que j'écris à nouveau de nouvelles données dans la table vide, le comptage ne commence pas par le début mais à partir de la dernière valeur entière que la colonne avait auparavant.

Est-il possible de réinitialiser cette valeur AUTOINCREMENT pour qu'elle recommence à 0 respectivement 1?

RépondrePositifNégatif
2Meilleure Réponse2 Voix

SQLite stocke le dernier ROWID dans la table SQLITE_SEQUENCE qui est automatiquement gérée par SQLite. Les valeurs de cette table sont conservées même si vous supprimez ou videz d'autres tables.

Ainsi, vous devez non seulement supprimer votre table elle-même, mais également les informations stockées sur votre table à partir de la méta-table SQLITE_SEQUENCE. Vous pouvez le faire par exemple comme ça:

DELETE FROM tab;
DELETE FROM sqlite_sequence WHERE name = 'tab';

En supposant que la table que vous souhaitez supprimer s'appelle "tab". La première requête supprimerait toutes les données de votre table, la deuxième ligne supprimerait les entrées de SQLITE_SEQUENCE. Lors de l'ajout de nouvelles données après cela, le comptage recommencera depuis le début.

UPDATE sqlite_sequence SET seq = 10 WHERE name = 'tab';

Vous pouvez également modifier les valeurs SQLITE_SEQUENCE individuellement. Par exemple, la requête ci-dessus laisserait le comptage commencer à 10.
08/05/2021 à 15:07

RépondrePositif Négatif
Répondre

Sujets Connexes

SQLite: Date plus de X jours

Question | 1 Réponse

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.