Нет такой табличной ошибки при замене таблицы через SQLAlchemy?

#python-3.x #pandas #post&resql #sqlalchemy

#python-3.x #pandas #post&resql #sqlalchemy

Вопрос:

Я использую SQLAlchemy и метод pandas pd.to_sql(if_exists="replace") для вставки данных в таблицу в Post&reSQL.

Теперь, если таблица не существует, то все работает нормально.

Но, если таблица уже существует (я знаю, что она существует, поскольку я могу видеть ее в p&Admin), я получаю следующую ошибку: sqlalchemy.exc.NoSuchTableError:

SQLAlchemy пытается удалить эту таблицу, чтобы заменить ее новой, но по какой-то причине не может найти таблицу?

Вот фрагмент кода:

 ENGINE = create_en&ine(...)

with ENGINE.be&in() as con:
   df.to_sql("table_name", con=con, index=False, if_exists="replace")
  

Это выдает указанную выше ошибку? Я попытался указать схему, но это также выдает ту же ошибку.

Почему SQLAlchemy не находит таблицу, хотя она там есть?

РЕДАКТИРОВАТЬ: если я удаляю if_exists="replace" , я затем получаю ошибку: ValueError: Table tablename already exists.

Комментарии:

1. Каково фактическое имя таблицы? Вы просматривали журналы Post&res, чтобы увидеть, какие команды отправляются?

2. @the-man столкнулся с той же проблемой, вы разобрались?

Ответ №1:

Я тоже столкнулся с той же проблемой и выяснил, что таблица существует с указанным ниже ddl :

создайте таблицу имя_таблицы();

Пожалуйста, удалите таблицу и повторите попытку, она будет работать.