#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 :
создайте таблицу имя_таблицы();
Пожалуйста, удалите таблицу и повторите попытку, она будет работать.