使用sqlalchemy生成: SELECT * ... INTO OUTFILE "file";

发布于 2024-11-09 13:20:23 字数 318 浏览 5 评论 0 原文

我最近开始使用 SQLALCHEMY 查询 my-sql 数据库。我想生成一个使用“INTO OUTFILE ”语法将查询结果导出到测试文件的选择语句。例如:

SELECT *
FROM table
INTO OUTFILE '/tmp/export.txt';

有没有办法使用 SQLALCHEMY 生成“INTO OUTFILE...”子句?

如果没有,我可以对 SQLALCHEMY 类之一进行子类化,以便我可以自己构建该子句吗?

谢谢。

I have recently started using SQLALCHEMY to query a my-sql database. I want to generate a select statement that uses the "INTO OUTFILE <file>" syntax to export query results to a test file. For example:

SELECT *
FROM table
INTO OUTFILE '/tmp/export.txt';

Is there a way to generate the "INTO OUTFILE..." clause using SQLALCHEMY?

If not, can I subclass one of the SQLALCHEMY classes so I can build that clause myself?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦与时光遇 2024-11-16 13:20:23

我思考并浏览了 SQLAlchemy 网站上的示例并找到了答案。 (也发布到 sql-alchemy 用户食谱


from sqlalchemy import *
from sqlalchemy.sql.expression import Executable, ClauseElement
from sqlalchemy.ext import compiler

class SelectIntoOutfile(Executable, ClauseElement):
    def __init__(self, select, file):
        self.select = select
        self.file = file


@compiler.compiles(SelectIntoOutfile)
def compile(element, compiler, **kw):
    return "%s INTO OUTFILE '%s'" % (
        compiler.process(element.select), element.file
    )


e = SelectIntoOutfile(select([s.dim_date_table]).where(s.dim_date_table.c.Year==2009), '/tmp/test.txt')
print e
eng.execute(e)

I did some thinking and poking around the examples on the SQLAlchemy site and figured it out. (Also posted to sql-alchemy user reciptes)


from sqlalchemy import *
from sqlalchemy.sql.expression import Executable, ClauseElement
from sqlalchemy.ext import compiler

class SelectIntoOutfile(Executable, ClauseElement):
    def __init__(self, select, file):
        self.select = select
        self.file = file


@compiler.compiles(SelectIntoOutfile)
def compile(element, compiler, **kw):
    return "%s INTO OUTFILE '%s'" % (
        compiler.process(element.select), element.file
    )


e = SelectIntoOutfile(select([s.dim_date_table]).where(s.dim_date_table.c.Year==2009), '/tmp/test.txt')
print e
eng.execute(e)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文