Как проверить на Python существуют ли значения в каком-либо столбце таблицы SQLite, равные данной переменной?
Я заполняю базу данных SQLite определенными характеристиками файлов и путями к этим файлам. Я не хотел допустить повторений и пытался придумать, как удалять из базы строки, характеризующие файл, обладающий путем, идентичным путю к новому файлу, информацию о котором добавляют в базу.
Например, у меня есть файл, путь к которому C:\file.txt. Мой код добавляет в базу данных информацию о файлах, среди которых есть файл, путь к которому такой же - C:\file.txt. Код имеет переменную path, которая характеризует этот путь. Можно ли перед тем, как добавить информацию о файле с таким же расположением, сначала удалить предыдущую информацию?
А зачем удалять, потом снова заполнять новыми данными.
Используйте UPDATE в запросе SQL для обновления данных.
То есть, сначала можно делать выборку SELECT с условием WHERE path='путь_к_файлу'.
Если ничего не вернулось - значит такого файла в базе еще нет, и добавляете новую запись через INSERT. Если вернулась строка из БД для такого файла - используете UPDATE для обновления полей данной строки БД.
Спасибо! Но у меня еще остался вопрос по поводу слов "сначала можно делать выборку SELECT с условием WHERE path='путь_к_файлу'". Вы проверяете равенство path заранее прописанной в коде строке, а я бы хотел проверять равенство определенной переменной. Это можно как-то реализовать?
Zefffir, да, просто подставьте значение переменной вместо пути что я указал в условии. Либо просто подстановкой переменной в строку запроса через %s или 'SELECT * FROM table WHERE path="{}"'.format(var), или как правильно через такую форму: cursor.execute('SELECT * FROM table WHERE path="?"', var)