Я новичок в 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
.
Мой вопрос: могу ли я сделать предложение вроде
insert into tabla(informacion)values('asdsa')
и позволить PostgreSQL обрабатывать обработку последовательного поля?
Я могу сделать это:
cursor.execute("INSERT INTO tabla informacion) VALUES ("+valor+")")"
но это предложение можно использовать для атаки с помощью SQL-инъекции.
Вот и все. Спасибо за чтение моего вопроса и извините за мой плохой английский (я говорю по-испански).