J'ai deux tables mysql, il faut commencer son id de colonne d'auto-incrémentation avec la dernière valeur de la dernière ligne insérée dans l'autre table (plus 1).Réinitialiser la valeur de la colonne d'incrémentation automatique dans le script mysql
Selon le manuel de MySQL, vous pouvez redémarrer la valeur d'une colonne d'incrémentation automatique comme ceci:
mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
Cependant, cela est impossible:
mysql> ALTER TABLE tb2 AUTO_INCREMENT = (SELECT MAX(id) FROM tbl1);
J'ai besoin d'exécuter quelque chose comme cela parce que Je remplis les tables en utilisant un script. Y a-t-il un autre moyen de l'atteindre?
La nécessité de manipuler l'index auto_increment est généralement le symptôme d'un défaut de conception. Pourquoi les identifiants des tables doivent-ils être corrélés de cette manière? –
Ne pensez pas que les instructions SELECT fonctionnent dans cette situation. Vous pouvez toujours l'interroger à partir de tbl1 en premier. Par défaut, l'incrément automatique est défini sur la dernière entrée de cette table. Veillez donc à ne pas écraser les valeurs dans tbl2 avec ces tbl1 - elles peuvent déjà exister dans tbl2. Si vous avez besoin qu'ils soient identiques, n'utilisez pas l'incrémentation automatique et mettez simplement à jour l'identifiant dans tbl2 avec celui dans tbl1. – Alec
Les deux tables sont liées à une troisième table qui va générer les identifiants de leurs lignes dans le futur. Comme je dois migrer des données à l'aide d'un script, il est plus facile pour moi de remplir une table, puis la seconde, puis de remplir la table du générateur puis de créer les clés étrangères. – Lucia