Variable définie par l'utilisateur dans une requête d'INSERTION pour MySQL
- Je besoin pour utiliser la variable définie par l'utilisateur dans une INSERTION de requêtes pour MySQL, voir un exemple ci-dessous:
INSERT INTO `posts`(`id`) VALUES(NULL);
SET @last_insert_id = LAST_INSERT_ID();
INSERT INTO `comments`(`id`, `post_id`) VALUES(NULL, "@last_insert_id");
Cet exemple ne fonctionne pas et inséré 0. Ce que je fais mal?
OriginalL'auteur Igor Timoshenko | 2012-05-22
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas besoin de le stocker dans une variable. Vous pouvez les appeler
LAST_INSERT_ID()
à l'intérieur de la suite deINSERT
déclaration.... sauf si vous avez plusieurs inserts à effectuer à l'aide de l'identifiant.
Dans ce cas, la syntaxe correcte pour l'utilisation de la variable est de le faire sans les guillemets:
est-il assez conséquente je veux dire, si quelqu'un d'autre ou cron est en train de faire certains inserts sera le SET @last_insert_id = LAST_INSERT_ID(); prend le dernier id à partir de laquelle incrément automatique de la table ?!
LAST_INSERT_ID() renvoie une valeur du dernier ID inséré à partir de la base de données actuelle de la connexion. Un autre utilisateur ou une autre cron ou similaire serait d'exploitation à partir d'une autre connexion de base de données avec ses propres last_insert_id valeurs, et les valeurs seront cohérentes.
OriginalL'auteur Michael Berkowski