AUTO_INCREMENT variable

Résolu
Bonjour,

Pourquoi ne peut-on pas faire :
ALTER TABLE ma_table AUTO_INCREMENT = @ma_variable ;

Comment faire pour faire commencer une table auto_indexer à une certaine valeur ?

D'avance merci.

3 réponses

  1. Bonjour,

    Déjà AUTO_INCREMENT n'est pas un champ, mais un paramètre pour un champ, tu ne peux donc lui affecter aucune valeur, c'est une opération.
    Tu peux choixir dans ta base SQL a partir de quelle valeur tu commence l'incrémentation.
    1. J'arrive à affecter une valeur avec ca :
      ALTER TABLE ma_table AUTO_INCREMENT = 100 ;
      Dans ce cas, l'incrementation commencera à 100.

      Donc à la main, cela fonctionne, mais pas avec une variable.
      Pourtant ma variable @ma_variable est bien un nombre.

      SET @ma_variable = SELECT COUNT(id) FROM ma_table;
      SELECT @ma_variable -> me retoune un nombre

      En fait, j'ai besoin de ne pas à avoir modifier l'auto_increment à la main car c'est trop long et pas scriptable.
      De plus, je recupere le COUNT d'une autre base
      1. J'ai trouvé une solution si ca interesse.

        Je passe par une variable

        En gros ca donne ca:
        SET @index = (SELECT MAX(id) FROM table); // ce chiffre +1 sera mon auto_increment
        INSERT INTO table2 (id) SELECT @index;
        DELETE FROM table2 WHERE id < (@index + 1); // resultat : une table vide qui commence à l'index @index + 1