我试图使用Postgresql ONLY关键字从SQLAlchemy表达式生成一个查询:
示例1:使用text()表达式定义表名不起作用(除非我将字符串“仅”作为文本的一部分):
tbl = text('schema.table') # work with text('ONLY schema.table')
query = select([func.count()]).select_from(tbl).with_hint(tbl,
'ONLY',
'postgresql')
print query.compile(bind=engine)指纹:
SELECT count(*) AS count_1
FROM schema.table示例2:但是,如果我使用轻量级table表达式,它会这样做:
tbl = table('schema.table')
query = select([func.count()]).select_from(tbl).with_hint(tbl,
'ONLY',
'postgresql')
print query.compile(bind=engine)指纹:
SELECT count(*) AS count_1
FROM ONLY "schema.table"但这是不行的,因为名字周围有双引号
现在,请记住,我收到了一个模式限定表名的列表,我希望避免创建Table和MetaData对象。
所以,为了澄清我的问题:
示例1:如何使ONLY关键字出现?
示例2:如何正确指定模式?
谢谢
https://stackoverflow.com/questions/34536068
复制相似问题