MySQL の INSERT クエリでユーザー定義変数を使用する必要があります。以下の例を参照してください。
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 を挿入しました。何が間違っていますか?
MySQL の INSERT クエリでユーザー定義変数を使用する必要があります。以下の例を参照してください。
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());
...その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);