2

我是 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("INSERT INTO tabla informacion) VALUES (%s)",("abcdef"))

PostgreSQL 抛出异常。

我必须这样做

cursor.execute("INSERT INTO tabla (codigo,informacion) VALUES (nextval(%s),%s)",
            ("dato_codigo_seq","abcdef"))

dato_codigo_seq字段的序列在哪里codigo

我的问题是L我可以做一个像这样的句子吗

insert into tabla(informacion)values('asdsa')

并让 PostgreSQL 处理串行字段的处理?

我可以做这个:

cursor.execute("INSERT INTO tabla informacion) VALUES ("+valor+")")"

但是这句话可以用来攻击 SQL 注入。

就这样。感谢您阅读我的问题,并为我的英语不好(我说西班牙语)感到抱歉。

4

2 回答 2

4
cursor.execute("""insert into tabla (informacion) VALUES (%s);""",(asdas,))

这就是解决方案

于 2010-05-25T21:38:58.693 回答
0

在你的例子中:

cursor.execute("INSERT INTO tabla informacion) VALUES (%s)",("abcdef",))
于 2014-02-10T16:16:03.060 回答