diff --git a/pandas/io/sql.py b/pandas/io/sql.py index 022ed2df8598d..f7fdc47afa8d1 100644 --- a/pandas/io/sql.py +++ b/pandas/io/sql.py @@ -1378,7 +1378,6 @@ def __init__(self, engine, schema: str | None = None): self.connectable = engine self.meta = MetaData(schema=schema) - self.meta.reflect(bind=engine) @contextmanager def run_transaction(self): @@ -1761,19 +1760,18 @@ def has_table(self, name: str, schema: str | None = None): ) def get_table(self, table_name: str, schema: str | None = None): - schema = schema or self.meta.schema - if schema: - tbl = self.meta.tables.get(".".join([schema, table_name])) - else: - tbl = self.meta.tables.get(table_name) - - # Avoid casting double-precision floats into decimals - from sqlalchemy import Numeric + from sqlalchemy import ( + Numeric, + Table, + ) + schema = schema or self.meta.schema + tbl = Table( + table_name, self.meta, autoload_with=self.connectable, schema=schema + ) for column in tbl.columns: if isinstance(column.type, Numeric): column.type.asdecimal = False - return tbl def drop_table(self, table_name: str, schema: str | None = None):