@Asriel

Как записать данные в бд?

Здравствуйте. Делаю бота Телеграм с помощью TelegramBotApi. Я хочу записать id и username в базу данных SQLite. Но еще я хочу сделать условие, что если этот пользователь будет в бд, то его не надо записывать. Я не знаю как это правильно реализовать.

Откуда взять id и username я знаю
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 1
@o5a
Добавить ограничение по уникальности этого поля, затем при добавлении записи можно будет при возникновении конфликта (дублировании записей) автоматически пропустить добавление. Конкретный формат зависит от базы данных. Для sqlite:
добавить unique(имя поля) в создание таблицы
create table mytable (id integer primary key,
user_id integer,
....,
unique(user_id)
)

затем при вставке данных
INSERT INTO mytable (user_id, user_name) VALUES (...) ON CONFLICT(user_id) DO NOTHING


Можно и более костыльный вариант. Перед вставкой данных делать запрос
result = cur.execute('select 1 from mytable where user_id = ?), (user_id, )).fetchone()
if not result:
   # делаем insert
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы