Не работает защита от ввода существующего значения в БД SQLite&Python

Создана функция, которая не дает вводить уже существующие значения в базу. До определённого времени она работала исправно, но сейчас выводит ошибку UNIQUE constraint failed: user_message.user_id

Вот код:

import telebot
import config
import sqlite3

from telebot import types

bot = telebot.TeleBot(config.TOKEN)
__connection = None
__data = None


def get_connection():
    global __connection

    if __connection is None:
        __connection = sqlite3.connect('database.db', check_same_thread=False)
    return __connection


def init_db(force: bool = False):
    conn = get_connection()
    c = conn.cursor()

    if force:
        c.execute('DROP TABLE IF EXISTS user_message')

    c.execute("""
        CREATE TABLE IF NOT EXISTS user_message (
            id              INTEGER PRIMARY_KEY,
            user_id         INTEGER NOT NULL,
            user_name       TEXT NOT NULL,
            user_surname    TEXT NOT NULL,
            username        TEXT NOT NULL
              )
        """)

    conn.commit()


def set_args(user_id: int, user_name: str, user_surname: str, username: str):
    conn = get_connection()
    c = conn.cursor()
    c.execute('INSERT INTO user_message (user_id, user_name, user_surname, username) VALUES (?, ?, ?, ?)', (user_id, user_name, user_surname, username))
    conn.commit()

    global __data
    if __data is None:
        __data = c.fetchone()
    return __data


@bot.message_handler(commands=['start'])
def send_welcome(message):
    us_id = message.from_user.id
    us_name = message.from_user.first_name
    us_sname = message.from_user.last_name
    user_name_tg = message.from_user.username

    init_db()
    if __data is None:
        set_args(user_id=us_id, user_name=us_name, user_surname=us_sname, username=user_name_tg)
    else:
        print('Error! You already register in DB!')
        print(__data)

Ответы (0 шт):