Python insert和psycopg2存在问题
我是Python和psycopg2的新手,在简单插入方面有问题 这是我的桌子:Python insert和psycopg2存在问题,python,psycopg2,Python,Psycopg2,我是Python和psycopg2的新手,在简单插入方面有问题 这是我的桌子: CREATE TABLE tabla ( codigo integer NOT NULL DEFAULT nextval('dato_codigo_seq'::regclass), informacion character(30) NOT NULL, CONSTRAINT dato_pkey PRIMARY KEY (codigo) ) 字段codigo是一个序列号 当我说这句话时: cursor.execute
CREATE TABLE tabla
(
codigo integer NOT NULL DEFAULT nextval('dato_codigo_seq'::regclass),
informacion character(30) NOT NULL,
CONSTRAINT dato_pkey PRIMARY KEY (codigo)
)
字段codigo
是一个序列号
当我说这句话时:
cursor.execute("INSERT INTO tabla informacion) VALUES (%s)",("abcdef"))
PostgreSQL抛出一个异常
我必须这样做
cursor.execute("INSERT INTO tabla (codigo,informacion) VALUES (nextval(%s),%s)",
("dato_codigo_seq","abcdef"))
其中dato\u codigo\u seq
是字段codigo
的顺序
我的问题是我能做一个这样的句子吗
插入表格(信息)值('asdsa')
让PostgreSQL处理串行字段
我可以这样做:
cursor.execute("INSERT INTO tabla informacion) VALUES ("+valor+")")"
但这句话可以用来攻击SQL注入
就这些。谢谢你阅读我的问题,也很抱歉我的英语不好(我说西班牙语)
这就是您示例中的解决方案:
cursor.execute("INSERT INTO tabla informacion) VALUES (%s)",("abcdef",))
为了更加明确,execute()的第二个参数必须是一个元组,在Python中,1项元组必须使用尾随逗号。但是,'''cursor.execute(“INSERT INTO tabla informacion”)值(“+valor+”)“''”类型行不会保存在数据库中。它只是增加我的数据库序列号。
cursor.execute("INSERT INTO tabla informacion) VALUES (%s)",("abcdef",))