使用自动生成的列的值进行后续查询

时间:2012-03-15 18:25:08

标签: mysql sql

我有一个SQL查询,我将两个用户添加到'组'。所以我有一个包含列的组表 -

group_id (AUTO_INCREMENT = true)
user_id

所以我用

将第一个用户插入到组中
INSERT INTO group (user_id) VALUES (user_1);

自动创建group_id。我想使用相同的group_id将第二个用户添加到表中。那么有没有办法在一次调用数据库时完成所有操作?我正在寻找类似以下查询字符串的内容 -

"INSERT INTO group (user_id) VALUES (user_1); 
group_id = getLastInsertedKey();
INSERT INTO group (user_id) VALUES (user_2);"

1 个答案:

答案 0 :(得分:1)

我不确定,但你可以试试:

INSERT INTO `group` (user_id) 
    VALUES (user_1);
INSERT INTO `group` (user_id, group_id) 
    VALUES (
        (SELECT LAST_INSERT_ID()) a, 
        user_2);

我们的想法是使用LAST_INSERT_ID()函数检索上次自动生成的值并在下一个查询中使用它。
正如我已经告诉过你的那样,我不确定它是否有效,但这个想法对你来说应该足够好了。