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