2017-07-03 4 views
0

文 存在が存在し、私たちは、私がquery_existsからテーブル名を抽出する方法を次のコード抽出テーブル名は、私はSQLAlchemyのからテーブル名を抽出するにはどうすればよいのクエリ

from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy.orm import sessionmaker 

Base = declarative_base() 

class Person(Base): 
    __tablename__ = 'person' 
    id = Column(Integer, primary_key=True) 
    name = Column(String(250), nullable=False) 

engine = create_engine('mysql://...') 
Session = sessionmaker(bind=engine) 

conn = engine.connect() 
session = Session(bind=conn) 
query_exists = session.query(Person).exists() 

を持っていると仮定?

答えて

0
from sqlalchemy.sql.visitors import ClauseVisitor 
from sqlalchemy import Table 

def extract_tables(sql_stmt): 
    tables = [] 
    visitor = ClauseVisitor() 
    cluase_iter = visitor.iterate(elem) 
    for e in cluase_iter: 
     if isinstance(e, Table): 
      tables.append(e) 
     if isinstance(e, (ValuesBase, UpdateBase)): 
      tables.append(e.table) 
    return set(tables) 
関連する問題