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. 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
    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. 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.