代码之家  ›  专栏  ›  技术社区  ›  A. L

pg promise-错误运算符不存在:bigint=bigint[]

  •  1
  • A. L  · 技术社区  · 7 年前

    我正在尝试运行查询:

    let query =
        `
            DELETE FROM
                ${table_name}
            WHERE
                _id IN ($1::bigint[])
                AND
                account_id = $2
        `
    let fields =
        [
            _ids,
            account_id,
        ]
    

    但它给了我一个错误:

    operator does not exist: bigint = bigint[]
    

    _ids 是一个数组。

    注释

    我在实现答案时遇到的错误是:

    GraphQLError: Int cannot represent non-integer value: []
    

    这只是一个graphql错误,与postgres无关。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Andomar    7 年前

    这个 IN 运算符应为 set of rows with exactly one column ,或者 parenthesized list of scalar expressions . 它不接受数组。

    One answer 建议 :list 告诉PG承诺做正确的事情:

    WHERE _id IN ($1:list)
    

    Another answer 建议 = any 在哪里 ANY 是一个 Postgres operator 它接受数组:

    WHERE _id = ANY ($1::int[])