dialect has a has_table method: engine.dialect.has_table(engine.connect(), "mytable")
On Apr 25, 2012, at 10:33 AM, Massi wrote: > Thank you for your reply Wichert, I already used the Inspector method > get_table_names(), but using that I'd have to check if a table name is > present in a vector which can have 100.000 elements. This can be even > slower if done for lots of times. Maybe I can perform a binary search, > but I'm not sure that the resulting vector is ordered. Am I wrong? > Other Ideas? > > On 25 Apr, 16:11, Wichert Akkerman <[email protected]> wrote: >> On 04/25/2012 03:57 PM, Massi wrote: >> >> >> >> >> >> >> >> >> >>> Hi everyone, >> >>> in my script I have to deal with a huge database with thousands of >>> tables. Given a table name (a python string) I would have to now if >>> such a table exists or not. Up to now I have written this function: >> >>> def DBGetTableByName(table_name) : >>> metadata = MetaData(engine) >>> try : >>> table = Table(table_name, metadata, autoload=True) >>> return table >>> except NoSuchTableError : >>> return None >> >>> I use its return value to check if the table exists, but the problem >>> is that it is too slow. Since I have to repeat this operation several >>> times I wonder if there is a faster (and smarter) way to perform this >>> control. >>> Any hints? >> >> Use the inspector: >> >> from sqlalchemy.engine.reflection import Inspector >> >> inspector = Inspector.from_engine(engine) >> print table_name in inspector.get_table_names() >> >> You can find the documentation >> here:http://docs.sqlalchemy.org/en/rel_0_7/core/schema.html?highlight=insp... >> >> Wichert. > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/sqlalchemy?hl=en. > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
