Comment puis-je réinitialiser une incrémentation automatique d'une table mysql à 1 dans phpMyAdmin?


20

Je sais que dans MySQL sur la ligne de commande, je peux réinitialiser le champ d'incrémentation automatique d'une table à 1 avec ceci:

ALTER TABLE tablename AUTO_INCREMENT = 1

Je suis curieux de savoir s'il existe un moyen de le faire à partir de phpMyAdmin. Quelque chose comme une case à cocher pour réinitialiser l'incrémentation automatique ou autre chose dans ce sens?

Non pas qu'il y ait quelque chose de mal avec l'approche en ligne de commande. Plus une de ces choses de curiosité auxquelles je continue de penser ... Merci d'avance!

Réponses:


19

phpmyadmin

Vous pouvez peut-être simplement sélectionner l'onglet Opérations phpMyAdmin:

  • Dans phpMyAdmin, cliquez sur la table que vous souhaitez réinitialiser ou modifiez la valeur AUTO_INCREMENT
  • Cliquez sur l'onglet Opérations
  • Dans la zone Options de table, recherchez le champ auto_increment.
  • Entrez la nouvelle valeur de départ auto_increment
  • Cliquez sur le bouton Aller pour la boîte Options de table.

Étant donné que c'est l'une des questions les plus fréquemment posées pour phpmyadmin, vous pouvez en savoir plus à ce sujet dans ce blog: http://trebleclick.blogspot.com/2009/01/mysql-set-auto-increment-in-phpmyadmin.html

Informations supplémentaires

Pour une table vide , une autre façon de réinitialiser l'attribut auto_increment consiste à exécuter

TRUNCATE TABLE mydb.tablename;

Ne l'exécutez pas si vous avez des données dedans. Si vous voulez diffuser les données, alors soyez mon invité.

Dans phpmyadmin, cliquez simplement sur l' SQLonglet, entrez la commande et exécutez-la.

Pour une table non vide , vous souhaiterez peut-être ajuster l'attribut auto_increment à l'ID existant le plus élevé utilisé en cas de suppression d'entrées supérieures.

D'abord, optimisez la table

OPTIMIZE TABLE mydb.mytable;

Ensuite, recherchez la valeur la plus élevée pour la colonne auto_increment (disons que c'est le cas id)

SELECT MAX(id) maxid FROM mydb.mytable;

Supposons que la réponse renvoie 27. Allez à l'onglet Opérations et entrez 28.


+1 pour tronquer, j'ai chuté et recréé.
mckenzm

@mckenzm Sous le capot, TRUNCATE TABLE supprime et recrée ( dev.mysql.com/doc/refman/5.6/en/… )
RolandoMySQLDBA

@mckenzm Je viens de lire votre profil. 25 ans de COBOL ??? Vous pauvre âme tourmentée.
RolandoMySQLDBA

TBH c'était probablement 13 fois les deux mêmes années ... et beaucoup était simple, le SQL embarqué, le niveau de commande CICS, les appels système VMS ... Macros prétraitées. Trucs Lego.
mckenzm

11

En complément des autres réponses, je préférerais une approche plus visuelle:

  1. Cliquez sur le tableau que vous souhaitez modifier.

  2. Cliquez Operations:

entrez la description de l'image ici

  1. Regardez sous " Options de table ":

entrez la description de l'image ici

Notez également que:

–§–   Vous ne pouvez pas réinitialiser le compteur à une valeur inférieure ou égale à la valeur actuellement utilisée. Pour InnoDB et MyISAM, si la valeur est inférieure ou égale à la valeur maximale actuellement dans la AUTO_INCREMENTcolonne, la valeur est réinitialisée à la valeur de AUTO_INCREMENTcolonne maximale actuelle plus un.


1
J'utilise toujours phpMyAdmin 4.0.1-rc1. Je suppose que c'est trop ancien, car je n'ai pas d'option AUTO_INCREMENT sur cette page.
Kar.ma

-2
SET @num := 0;
UPDATE tablename SET id = @num := (@num+1);
ALTER TABLE tablename AUTO_INCREMENT = 1;

2
Et qu'en est-il de toutes les données associées?
Colin 't Hart
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.