我正在尝试通过 asyncpg API 使用查询参数在 postgresql 数据库的表中插入值。我这样创建了我的表:
CREATE TABLE my_table
(
cat BIGINT,
roles BIGINT ARRAY
);
我已经尝试像这样直接在 BIGINT 中转换参数:$1:BIGINT
但我得到了同样的错误
await connection.execute('''
INSERT INTO my_table(cat, roles)
VALUES($1, $2)
ON CONFLICT ($1)
DO UPDATE SET roles = array_append(roles, $2)
''', cat, roles)
cat 是一个 int 并且角色是一个 int 数组
应该将 cat 和角色插入 my_table 但我刚刚收到错误:syntax error at or near "$1"
我提供数据库的日志以防万一
2019-01-26 21:01:22 UTC:172.31.36.115(37598):Barbote@Barbotedb:[15082]:ERROR: syntax error at or near "$1" at character 111
2019-01-26 21:01:22 UTC:172.31.36.115(37598):Barbote@Barbotedb:[15082]:STATEMENT:
INSERT INTO "429792212016955423"(cat, roles)
VALUES($1 $2)
ON CONFLICT ($1)
DO UPDATE SET roles = array_append(roles, $2);