J'ai le tableau suivant my_table avec la clé primaire id mis à AUTO_INCREMENT.Comment puis-je ajouter un "groupe" de lignes et incrémenter leur "id de groupe" dans MySQL?
id group_id data_column
1 1 'data_1a'
2 2 'data_2a'
3 2 'data_2b'
Je suis coincé en train de construire une requête qui prendra un tableau de données, disent [ 'data_3a', 'data_3b'], et incrémenter de façon appropriée la group_id pour obtenir:
id group_id data_column
1 1 'data_1a'
2 2 'data_2a'
3 2 'data_2b'
4 3 'data_3a'
5 3 'data_3b'
Je pense que ce serait facile à faire en utilisant une clause WITH, mais cela n'est pas supporté par MySQL. Je suis très nouveau à SQL, donc peut-être que j'organise mes données dans le mauvais sens? (Un groupe est censé représenter un groupe de fichiers qui ont été téléchargés ensemble via un formulaire Chaque ligne est un fichier unique et la colonne de données stocke son chemin).
Le code « Psuedo SQL » j'avais à l'esprit était:
INSERT INTO my_table (group_id, data_column)
VALUES ($NEXT_GROUP_ID, 'data_3a'), ($NEXT_GROUP_ID, 'data_3b')
LETTING $NEXT_GROUP_ID = (SELECT MAX(group_id) + 1 FROM my_table)
où le composé clause « LOCATIF » serait seulement d'évaluer une fois au début de la requête.
Il me semble que si vous pouviez construire les valeurs de "data_column" à partir des valeurs des autres champs, "data_column" dépendrait fonctionnellement des autres champs, et serait donc redondant. Si c'est une donnée réelle, quelqu'un doit l'entrer. – wildplasser