la seule façon que je peux voir que vous le faire avec une seule requête est d'utiliser le schéma d'information. Dans le schéma d'information il y a une table appelée 'tables', là vous accédez à la colonne auto_increment. Cela contient l'ID d'insertion NEXT pour cette table, vous pouvez y accéder via une sélection imbriquée, il suffit de donner à l'utilisateur utilisé pour se connecter à l'accès en lecture de la base de données à cette table. Cela fonctionnera uniquement avec les moteurs innodb autant que je peux dire que de cette façon, la sélection imbriquée que vous ferez pour remplir le second champ d'identification fera partie de la plus grande transaction de l'insertion.
C'est ce que votre requête pourrait ressembler à:
INSERT INTO fooTable VALUES (0, (SELECT AUTO_INCREMENT FROM information_schema.TABLES));
Aussi, si vous êtes inquiet au sujet d'accès en lecture et les questions de sécurité, rappelez-vous que c'est la même information que vous pouvez obtenir en exécutant un état de table de salon. En parlant de cela, j'ai essayé de voir si vous pouviez projeter les commandes show/requêtes via un select et vous ne pouvez pas, ce qui est totalement nul, parce que cela aurait été une solution beaucoup plus propre.
J'ai essayé cela une fois et n'ai pas trouvé de solution. Bonne chance, de toute façon! –