【问题标题】:"Column reference is ambiguous" GraphQL, PostgreSQL & TypeORM“列引用不明确”GraphQL、PostgreSQL 和 TypeORM
【发布时间】:2021-01-08 03:50:11
【问题描述】:

如果我在 pgAdmin 中运行以下查询,它工作得非常好:

UPDATE customer SET token = array_append(token, '123132');

现在,如果我使用 TypeOrm 运行它,我会得到“列引用“令牌”不明确”

 const result = await getConnection()
    .createQueryBuilder()
    .insert()
    .into(Customer)
    .values([
      {
        orgId: records.orgId,
        token: [records.token],
      },
    ])
    .onConflict(
      `("orgId") DO UPDATE SET token = array_append(token, '123132')`
    )
    .returning("*")
    .execute();

在我看来,查询是完全一样的。我错过了什么?

提前谢谢你!

【问题讨论】:

    标签: postgresql graphql typeorm typegraphql


    【解决方案1】:

    您正在构造的语句是INSERT ... ON CONFLICT,它与UPDATE 完全不同。之所以产生歧义,是因为不清楚您是在谈论原始列值还是INSERT supolied 的新值。

    适当地限定列:

    SET token = array_append(customer.token, '123132')
    

    来自INSERT 的新值将使用excluded 进行限定。

    【讨论】:

    • 这是我一直在寻找的答案。谢谢!
    猜你喜欢
    • 2023-01-18
    • 2020-12-08
    • 2012-04-06
    • 1970-01-01
    • 2018-01-26
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多