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

标签 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);"

最佳答案

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

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()函数来检索最后一个自动生成的值并在下一个查询中使用它。
正如我已经告诉过你的,我不确定它是否有效,但这个想法对你来说应该足够好了。

关于mysql - 使用自动生成列的值进行后续查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9725833/

相关文章:

mysql - 如何在 MySQL 和 Cassandra 中获取行组

php - laravel4 通过关系(一对多)从其他表中选择所有数据

c# - DataGrid ASP.net C# 中的中型 Blob

sql - SQLite 是否支持公用表表达式?

多列的 SQL 检查约束

mysql - 尝试从模型创建表时出错

c# - 连接丢失后自动重新连接到 MySql

SQL:每个特定时间戳只需要 1 行

sql - 如何使用列值范围应用 NTILE(4)?

sql - 检查 varchar 中的字符