一切都在标题中.是否有"Pythonic"方式(我的意思是,没有"纯SQL"查询)来使用SQLAlchemy定义SQL视图?
谢谢你的帮助,
我使用sqlalchemy的核心功能来编写一些抽象层.图层本身需要能够从select语句创建表.
示例代码:
metadata = MetaData(bind=engine)
table = Table(table_name, metadata, autoload=True, autoload_with=engine)
s = select(table).where(table.c.column_1 > 10)
Run Code Online (Sandbox Code Playgroud)
现在我想要做的是从上面的select语句创建一个新表.我该怎么做?
注意:我也在https://groups.google.com/forum/#!topic/sqlalchemy/lKDkX68fOqI上询问了这个问题.很抱歉交叉发布
我能想到的唯一方法是使用绑定到它的参数编译上面的select语句.手动构造SQL,然后执行create table
例如:
sql = str(s.compile(dialect=postgresql.dialect(),
compile_kwargs={"literal_binds": True}
)
)
create_tbl_sql = "CREATE TABLE {0} AS {2}".format(new_table_name, sql)
connection.execute(create_tbl_sql)
Run Code Online (Sandbox Code Playgroud)
当datetime对象涉及where条件时,文字绑定编译也很痛苦.几乎每当查询中存在无法序列化的内容时.我将不得不解决这个问题.
采用这种方法似乎并不干净.所以,如果他们知道更好的事情,我会问整个社区.