gpt4 book ai didi

javascript - Slonik 通过 sql 标签动态插入查询

转载 作者:行者123 更新时间:2023-12-03 07:10:51 29 4
gpt4 key购买 nike

通过Slonik我尝试以动态方式创建 sql 语句。我有一个键列表,我想将其用于我的插入语句并创建一个值列表。

这是我的设置示例。虽然我的插入列的定义总是失败。

  const keys = [
'type',
'substance_group',
'substance',
'unit',
'zone_id',
'zone',
'sector',
'sub_sector',
'sum_bruto',
'sum_netto',
];
const emissionValues = values<string>(pick(emission, keys));

// (type, substance_group, substance, unit, zone_id, zone, sector, sub_sector, sum_bruto, sum_netto)
const query = sql`
INSERT INTO api.emissions
(${sql.array(keys, 'text')})
VALUES (${emissionValues.join(',')})
`;

我尝试了这些形式:

  • ${sql.array(keys, 'text')}
  • ${sql.join(keys, sql, )}
  • 或普通${keys.join(',')

但 sql 查询构建器标签不允许。

最佳答案

这包含在 documentation 中,但您需要使用 sql.identifier 作为标识符,例如

const identifiers = keys.map((key) => {
return sql.identifier([key]);
});

sql`
INSERT INTO api.emissions
(${sql.join(identifiers, sql`, `)})
VALUES
(${sql.join(values, sql`, `)})
`

如果要插入多行,请查看 sql.unnest .

关于javascript - Slonik 通过 sql 标签动态插入查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60972112/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com