Можете помочь найти ошибку в этом коде?

Как можно исправить ошибку `sqlite3.OperationalError: no such table: source_table` при выполнении сравнения MD5 хэшей из SQLite и PostgreSQL баз данных в скрипте на Python?
  • 1 августа 2024 г. 11:33
Ответы на вопрос 3
Ошибка `sqlite3.OperationalError: no such table: source_table` означает, что таблица `source_table` не существует в базе данных SQLite. Причиной этой ошибки может быть неправильное указание имени таблицы или отсутствие необходимой таблицы в базе данных.

Для исправления ошибки необходимо убедиться, что таблица `source_table` существует в базе данных SQLite. Проверьте правильность имени таблицы и его наличие в базе данных.

Если таблица `source_table` действительно существует, то возможно проблема связана с подключением к базе данных. Убедитесь, что вы правильно указали путь к базе данных SQLite и выполните подключение перед выполнением запроса.

Если проблема не решена, уточните ваши действия и предоставьте более подробную информацию о коде и окружении выполнения, чтобы мы могли предложить более точное решение.
Нужно найти ошибку в коде?
нет, не нужно, ошибку тебе питон написал
-1. " Нужно найти ошибку в коде?" Мне не нужно, а тебе - не знаю. Наверно нужно, если уж сюда пришёл. 
Это я к тому, что чем чётче сформулирован твой вопрос - тем больше шансов получить ответ, а не насмешки.
0. Оформляй код! Правила сайта, пункт 3.8. Кнопка в помощь. Опять же, чем читаемее код - тем больше шансов, что кто-то захочет отвечать.

А теперь к делу:
1. Ты прямо так и запускаешь код, с подключением к postgre И с подключением к sqlite? Я что-то думаю, что тебе нужно только одно из двух. Выглядит так, будто тебе дали пример, а ты его пытаешься запустить, не прочитав. Особенно учитывая, что ты пытаешься обратиться к таблице по имени source_table.

2. Текст ошибки читал? Переводил? " sqlite3.OperationalError: no such table: source_table " - у тебя в той БД sqlite, к которой ты коннектишься, нет такой таблицы. Учитывая, что ты указываешь относительный путь - я даже не скажу, где этот файл находится, так как итоговый путь зависит от текущего рабочего каталога. А текущий рабочий каталог при запуске питоновского файла может быть разным, и может совпадать или не совпадать с каталогом, где и лежит этот питоновский файл. Если в итоге путь указывает куда-то не туда - sqlite создаст там файл с пустой БД, в которой, естественно, нет ни одной таблицы.

3. Ты полагаешься на то, что БД всегда отдаёт строки в таблице в одном и том же порядке. Я бы не стал на это полагаться - или, как минимум, проверил бы в документации: гарантируется ли сохранение порядка строк при отсутствии сортировки? Более того, судя по твоему предыдущему вопросу, ты делаешь допущение, что две разные БД дадут один и тот же порядок строк - что вообще-то не факт. Хотя это можно обойти, добавив ORDER BY к запросу.
Похожие вопросы