AWS RDS BatchExecuteStatementRequest

问题描述 投票:0回答:1

我正在尝试使用简单的信息来更新我的RDS Aurora数据库。

import * as AWS from 'aws-sdk';
import { BatchExecuteStatementRequest } from 'aws-sdk/clients/rdsdataservice';

const RDS = new AWS.RDSDataService();

export const create = async (event: any) => {
  try {
    const params: BatchExecuteStatementRequest = {
      secretArn: 'arn:aws:secretsmanager:XXXXXXXXXXXXXXXXXXX',
      resourceArn: 'arn:aws:rds:XXXXXXXXXXXXXXXXXXXXX',
      schema: 'PUBLIC',
      database: 'test_db',
      parameterSets: [
          [
            {
              name: 'FirstName',
              value: {
                stringValue: 'Joe',
              }
            },
            {
              name: 'LastName',
              value: {
                stringValue: 'Doe'
              }
            }
          ],
          [
            {
              name: 'FirstName',
              value: {
                stringValue: 'Joyer',
              }
            },
            {
              name: 'LastName',
              value: {
                stringValue: 'Doyer'
              }
            }
          ]
      ],
      sql: 'INSERT INTO test_table (FirstName, LastName) VALUES (:FirstName, :LastName)'
    };

    const res = await RDS.batchExecuteStatement(params).promise();

    console.log({ result: res, params });
    return {
      statusCode: 200,
      body: JSON.stringify(res)
    };
  } catch (err) {

    console.error(err);
    return {
      statusCode: err.statusCode || 500,
      headers: { 'Content-Type': 'text/plain' },
      body: 'Could not create the note.'
    };
  }
};

这将产生错误:

{ BadRequestException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ’(’Joyer’, ‘Doyer’)' at line 1 }

奇怪的部分是,如果我仅在参数集中添加一个人,那么它就起作用了,所以当我尝试拥有多个数组时,就会发生错误。

我在AWS控制台中创建了数据库,这是该数据库的查询:

CREATE DATABASE IF NOT EXISTS test_db;
USE test_db;
CREATE TABLE IF NOT EXISTS test_table (
  Id int NOT NULL AUTO_INCREMENT,
  FirstName varchar(255), 
  LastName varchar(255),
  PRIMARY KEY (Id)
);
sql amazon-web-services amazon-rds amazon-rds-aurora
1个回答
0
投票

我在写问题时发现了问题,以为我还是会在这里分享它。

您不能拥有AUTO_INCREMENT!这是错误,只需将其删除即可。

这是几个有趣的时光.....

© www.soinside.com 2019 - 2024. All rights reserved.