【发布时间】:2019-04-18 22:00:48
【问题描述】:
当我在 SQLAlchemy 中进行查询时,我注意到查询对每一列都使用了 AS 关键字。它为每一列设置alias_name = column_name。
例如,如果我运行命令print(session.query(DefaultLog)),它会返回:
注意:DefaultLog 是我的表格对象。
SELECT default_log.id AS default_log_id, default_log.msg AS default_log_msg, default_log.logger_time AS default_log_logger_time, default_log.logger_line AS default_log_logger_line, default_log.logger_filepath AS default_log_logger_filepath, default_log.level AS default_log_level, default_log.logger_name AS default_log_logger_name, default_log.logger_method AS default_log_logger_method, default_log.hostname AS default_log_hostname
FROM default_log
为什么它使用别名 = 原始名称?有什么方法可以禁用此行为?
提前谢谢你!
【问题讨论】:
-
为什么要禁用它?
-
为什么您认为需要禁用列别名?您正在使用 ORM 运行查询,然后 ORM 使用结果来构建 Python 对象。别名用于标记结果集中的每一列,使从结果集到 Python 对象的自动映射易于管理,而且您无需读取该结果集,ORM 是。
-
@MartijnPieters @Ilja Everilä - 我问是因为我认为我做错了什么,或者额外的
AS会减慢速度。从答案中,我现在看到这是预期的行为并且是可取的。
标签: python sqlalchemy