首页 > 解决方案 > 如何在 GraphQL 突变中获取 RDS Aurora 中最后插入行的 id

问题描述

我有一张 (id, price) 的桌子。id 是自动递增的。我想返回最后插入行的 id 和完整数据。

解析器:

{
    "version": "2018-05-29",
    "statements": [
        "insert into notes (price) VALUES (100)",
        "select * from notes WHERE id = $id"
    ]
}

如何找到最后插入的行的 id。第二个查询当然不会在这里工作,因为 id 是未知的。

SELECT LAST_INSERT_ID(); 在无服务器环境中运行良好?如何存储该变量并运行第三个查询?

标签: graphqlamazon-rdsaws-appsyncamazon-aurora

解决方案


我遇到了同样的问题。到目前为止,这似乎对我们有用:

{
    "version": "2018-05-29",
    "statements": [
        "INSERT INTO customer_addresses (`id`, `customerid`, `firstname`, `lastname`) VALUES (NULL, :CUSTOMERID, :FIRSTNAME, :LASTNAME)",
        "SELECT * FROM customer_addresses WHERE id = LAST_INSERT_ID()"
    ],
    "variableMap": {
        ":CUSTOMERID": $context.args.customerid,
        ":FIRSTNAME": "$context.args.input.firstname",
        ":LASTNAME": "$context.args.input.lastname"
    }
}

推荐阅读