MySQLの挿入クエリ内のユーザー定義変数
-
13-12-2019 - |
質問
MySQLの挿入クエリでユーザー定義変数を使用する必要がある場合は、a例を参照してください。
INSERT INTO `posts`(`id`) VALUES(NULL);
SET @last_insert_id = LAST_INSERT_ID();
INSERT INTO `comments`(`id`, `post_id`) VALUES(NULL, "@last_insert_id");
.
この例はうまくいき、挿入されていません。私は何を間違っていますか?
解決
変数に保存する必要はありません。次の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);
. 所属していません StackOverflow