当前位置: 首页 > 知识库问答 >
问题:

MySQL立即返回新插入的行的正确方法,供GraphQL使用?[重复]

麻宜春
2023-03-14

使用GraphQL变体创建记录时,它希望返回完整的对象,例如:

mutation {
  createPost(title: "Good morning") {
    id
    title
  }
}

如何可靠地让MySQL返回新插入的项目?我目前正在这样做:

INSERT INTO posts(title) VALUES('Good morning');
SELECT * FROM posts WHERE id = LAST_INSERT_ID();

但是我不确定这是否是最好的方法。如果另一个用户碰巧在我自己的用户之后立即执行INSERT,该怎么办?将LAST_INSERT_ID()引用他们的主键ID而不是我的?

共有1个答案

洪经义
2023-03-14

我上一份工作就是这样做的,从来没有遇到过任何问题。文档说它是每个连接的,所以你不必担心另一个连接会改变它。

需要注意的一件事是使用一条INSERT语句插入多行。在这种情况下,最后一个插入的ID()将返回第一个插入的ID。

 类似资料:
  • 好的,这个问题不是关于如何返回ID,而是更像是如何跳过它...我有一种情况,我使用last_insert_id()获取最后插入的行的id,但如果没有插入行,我希望得到一个零。问题如下: I INSERT...UPDATE一些记录:由于行是新插入的,因此返回所有ID 然后重复这个过程:这一次不返回ID。耶!这正是我想要的 我更改了一个列值并重复该过程:但现在返回了我更改了列值的行的ID。这让我很生气

  • 好吧,问题不是关于如何返回ID,而是更像是如何跳过它...我有一种情况,我使用last_insert_id()获取最后插入行的id,但如果没有插入行,我想得到一个零。问题如下: < li >我插入...更新一些记录:由于这些行是新插入的,所以返回所有id < li >然后我重复该过程:这次不返回id。耶!这正是我想要的 < li >我更改了一个列值并重复该过程:但现在返回的是我更改了列值的行的ID

  • 我有以下PHP代码。我希望返回插入的最后一个id: 我的DB架构如下: 我已经把厨房的水槽扔过去了,但一点也没有。无论我做什么,总是未定义的。我已经验证了实际上有一个插入。我只剩下运行另一个select并返回最大VesselTransitID的(可怕的)选项,这并不能保证正确的结果。

  • 本文向大家介绍php插入mysql数据返回id的方法,包括了php插入mysql数据返回id的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 匹克系统应用: 以上这篇php插入mysql数据返回id的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 这是我非常简单的表格(Postgres): 如果我尝试使用FROM数据库下面的命令插入String,那么一切都会按预期工作,不足为奇的是,数据库中会出现一个新行。 但是,如果我想通过JDBC插入字符串,则不会插入任何内容,尽管prepareStatement.executeUpdate()始终返回1。 下面是我的方法应该起作用,但是没有起作用。请告诉我是否缺少明显的东西。我想补充一点,

  • 问题内容: 因此,可以尝试获取以下JSON对象: 有没有一种方法可以使用node或express在服务器的响应中生成完全相同的主体?显然,可以设置标头并指示响应的内容类型将为“ application / json”,但是存在多种写入/发送对象的方法。我经常看到的一种是通过使用以下形式的命令: 但是,这有两点可以使人争辩说它们是“问题”: 我们正在发送一个字符串。 此外,最后没有换行符。 另一个想