psycopg2-插入整数数组
我使用的是Postgres 9.2、Python 2.7.3、psycopg2.5.1 我有一个表,其中一个字段声明为'some_field int[]NOT NULL',我需要插入一些数据,所以我做了如下操作:psycopg2-插入整数数组,psycopg2,Psycopg2,我使用的是Postgres 9.2、Python 2.7.3、psycopg2.5.1 我有一个表,其中一个字段声明为'some_field int[]NOT NULL',我需要插入一些数据,所以我做了如下操作: cursor.execute('INSERT INTO some_table (some_field) VALUES (%s)', ([1, 2, 3], )) 但由于结果查询变为 INSERT INTO some_table (some_field) VALUES ('[1, 2,
cursor.execute('INSERT INTO some_table (some_field) VALUES (%s)', ([1, 2, 3], ))
但由于结果查询变为
INSERT INTO some_table (some_field) VALUES ('[1, 2, 3]')
而不是
INSERT INTO some_table (some_field) VALUES (ARRAY[1, 2, 3])
或
是我遗漏了什么还是psycopg2错误?第一段代码是正确的。要检查psycopg2生成的SQL,您可以始终使用
mogrify()
方法:
>>> curs.mogrify('INSERT INTO some_table (some_field) VALUES (%s)', ([1, 2, 3], ))
'INSERT INTO some_table (some_field) VALUES (ARRAY[1, 2, 3])'
然后,您可以使用psql
尝试SQL并查找错误。如果发现psycopg2生成的查询无法在psql
中执行,请报告错误
>>> curs.mogrify('INSERT INTO some_table (some_field) VALUES (%s)', ([1, 2, 3], ))
'INSERT INTO some_table (some_field) VALUES (ARRAY[1, 2, 3])'