如何插入批量记录

时间:2019-07-24 09:06:57

标签: mysql amazon-web-services api lambda

我正在使用AWS API getaway和lambda进行API开发。 我正在使用无服务器MySQL https://www.npmjs.com/package/serverless-mysql软件包进行mysql连接和操作。

但是我无法插入多个记录。如果我将记录数组传递给insert函数,它将仅插入单个记录。

请建议我如何在不使用循环的情况下插入多个记录。

values=[
  [
    "229",
    25,
    "objective",
    [
      "49"
    ],
    "2019-07-24 08:59:39",
    "2019-07-24 08:59:39"
  ],
  [
    "229",
    26,
    "descriptive",
    [
      "Yes i have long term illness that limits my daily activities. Test..."
    ],
    "2019-07-24 08:59:39",
    "2019-07-24 08:59:39"
  ]
];
var sql = 'INSERT INTO `answers` (`user_id`, `question_id`, `question_type`, `answer`, `created_at`, `updated_at`)  VALUES (?)';

await connection.query(sql, values);

2 个答案:

答案 0 :(得分:2)

我以前没有使用过该软件包,但是只是遍历文档,似乎它没有为batch插入提供其他功能。因此,我认为您仍然需要像平时为mysql进行批量插入那样组成查询。

INSERT INTO table_name (field1,field2,field3) VALUES(1,2,3),(4,5,6),(7,8,9);

答案 1 :(得分:1)

批处理模式在此模式下不可用。因此,如果要避免循环,一种选择是组成查询,如一个答案所示:

INSERT INTO table_name (field1,field2) VALUES(1,2,3),(4,5,6);

但是更好的方法是创建一个单独的lambda函数以通过顺序传递来插入值。它将为您提供更大的灵活性,以便在其中插入值。

https://docs.aws.amazon.com/cli/latest/reference/glue/create-user-defined-function.html