我目前正在将 AWS Lambda (NodeJS) 与 AWS QLDB 一起使用。
场景是这样的。部署服务时,我有第一个表及其索引。因此将创建表和索引。我的问题是,一旦我需要添加新表及其索引;它无法创建索引,因为存在现有表。
即使我的 Ledger 中有一个现有表,我也能够创建新表的解决方法是我正在查询我拥有的表列表。
const getTables = async (transactionExecutor: TransactionExecutor) => {
const statement = `SELECT name FROM information_schema.user_tables`;
return await transactionExecutor.execute(statement);
};
然后我有这个条件来检查表是否已经存在
const tables = JSON.stringify(result.getResultList());
if (
!JSON.parse(tables).some((object): boolean => object.name === process.env.TABLE_NAME)
) {
console.log('TABLE A NOT EXISTING');
await createTable(transactionExecutor, process.env.TABLE_NAME);
}
if (
!JSON.parse(tables).some(
(object): boolean => object.name === process.env.TABLE_NAME_1,
)
) {
console.log('TABLE B NOT EXISTING');
await createTable(transactionExecutor, process.env.TABLE_NAME_1);
}
我不知道如何使用索引,我尝试在 QLDB 中使用 SQL 命令,但它不起作用。我希望你能帮助我。
谢谢