AUTO_INCREMENT variable

Résolu
Stef60 Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   -  
Stef60 Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   -
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

Alex
 
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.
0
Stef60 Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   41
 
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
0
Stef60 Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   41
 
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
0