AUTO_INCREMENT variable
Résolu
Stef60
Messages postés
257
Statut
Membre
-
Stef60 Messages postés 257 Statut Membre -
Stef60 Messages postés 257 Statut Membre -
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.
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
-
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. -
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 -
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