【发布时间】:2014-04-04 23:12:39
【问题描述】:
我正在通过 sqlalchemy (python) 连接一个 postgresql 数据库。
在那里我有一个这样的表:
SELECT * from mytable;
id | user | password | host | port
----+------+----------+-----------------+------
1 | abc | def | 127.0.0.1 | 21
但是现在如果我尝试从我的代码中做一个等价的(我认为......)选择:
s = sql.select(columns=['user', 'password', ...]).select_from('mytable')
我得到数据库用户的名称,而不是用户列 (abc) 中的条目。
我还注意到,如果在 select 语句中明确指定了列名,psql 客户端会将用户字段重命名为“current_user”:
SELECT user, password, host, port FROM mytable;
current_user | password | host | port
--------------+----------+-----------------+------
abc | def | 127.0.0.1 | 21
为了避免混淆,我是否必须重命名所有表格列?
或者 sqlalchemy 有没有针对这个问题提供解决方案?
这是表格规格:
\dS mytable;
Table "public.mytable"
Column | Type | Modifiers
----------+-----------------------------+--------------------------------------------------------------------
id | integer | not null default nextval('mytable_id_seq'::regclass)
user | character varying | not null
password | character varying | not null
host | character varying | not null
port | integer | not null
Indexes:
"mytable_pkey" PRIMARY KEY, btree (id)
【问题讨论】:
标签: python sql postgresql sqlalchemy