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.
A voir également:
- AUTO_INCREMENT variable
- Vba range avec variable ✓ - Forum VB / VBA
- Variable d'environnement temp ✓ - Forum Microsoft Office
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp - Forum Microsoft Office
- Variable objet ou bloc "with" non définie - Forum VB / VBA
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.
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
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
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