psycopg2.ProgrammingError:列不存在
问题描述:
我收到以下错误,当我试图通过python.roll_no查询数据库是每个表的关键。psycopg2.ProgrammingError:列不存在
File "class_room.py", line 30, in get
cursor.execute("select first_name from class_room where keyword=%s", (roll_no))
psycopg2.ProgrammingError: column "keyword" does not exist
LINE 1: select first_name from class_room where keyword='3'
^
12:21 class_room=# \d+ class_room
Table "public.class_room"
Column | Type | Modifiers | Storage | Stats target | Description
------------+---------+---------------------------+----------+--------------+- ------------
roll_no | integer | not null | plain | |
first_name | text | not null default ''::text | extended | |
last_name | text | not null default ''::text | extended | |
marks | integer | | plain | |
Indexes:
"class_room_pkey" PRIMARY KEY, btree (roll_no)
Has OIDs: no
user:~/pathclass_room $ cat schema.sql
create table class_room (
roll_no int primary key,
first_name text not null default '',
last_name text not null default '',
marks int
);
答
更改为:
cursor.execute("select first_name from class_room where roll_no = %s", (roll_no,))
roll_no
后不要忽略逗号。它将括号表达式变成一个元组。
+0
谢谢,这有帮助。 – supervirus
什么是'keyword'?你没有这样的专栏。 – sagi
像@sagi上面写的。有时我在使用''''而不是''''''时,类似的错误,反之亦然在字符串的SQL查询。但在这里看来你没有专栏。 – MartinP