2011-05-21 68 views
2

我最近開始使用SQLALCHEMY查詢my-sql數據庫。我想生成一個使用「INTO OUTFILE <file>」語法的select語句將查詢結果導出到測試文件。例如:使用sqlalchemy生成:SELECT * ... INTO OUTFILE「file」;

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

有沒有一種方法來生成使用的SQLAlchemy的「INTO OUTFILE...」條款?

如果不是,我可以繼承其中一個SQLALCHEMY類,以便我可以自己構建該子句嗎?

謝謝。

回答

2

我在SQLAlchemy網站上做了一些思考和探索例子,並找出了它。 (也張貼到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) 
相關問題