متغير محدد من قبل المستخدم في استعلام INSERT لـ MySQL
-
13-12-2019 - |
سؤال
أحتاج إلى استخدام متغير محدد من قبل المستخدم في استعلام INSERT لـ MySQL، راجع المثال أدناه:
INSERT INTO `posts`(`id`) VALUES(NULL);
SET @last_insert_id = LAST_INSERT_ID();
INSERT INTO `comments`(`id`, `post_id`) VALUES(NULL, "@last_insert_id");
هذا المثال لا يعمل وتم إدراج 0.ما الخطأ الذي افعله؟
المحلول
ليست هناك حاجة لتخزينه في متغير.يمكنك فقط الاتصال LAST_INSERT_ID()
داخل ما يلي INSERT
إفادة.
INSERT INTO `comments`(`id`, `post_id`) VALUES (NULL, LAST_INSERT_ID());
...ما لم يكن لديك إدراجات متعددة لتنفيذها باستخدام هذا المعرف.
في هذه الحالة، بناء الجملة الصحيح لاستخدام المتغير هو القيام بذلك بدون علامات الاقتباس:
INSERT INTO `posts`(`id`) VALUES (NULL);
SET @last_insert_id = LAST_INSERT_ID();
/* Several new entries using the same @last_insert_id */
INSERT INTO `comments`(`id`, `post_id`) VALUES (NULL, @last_insert_id);
INSERT INTO `comments`(`id`, `post_id`) VALUES (NULL, @last_insert_id);
INSERT INTO `comments`(`id`, `post_id`) VALUES (NULL, @last_insert_id);
INSERT INTO `comments`(`id`, `post_id`) VALUES (NULL, @last_insert_id);
INSERT INTO `comments`(`id`, `post_id`) VALUES (NULL, @last_insert_id);
لا تنتمي إلى StackOverflow