вставка неповторяющихся значений в mssql python

Столкнулся с такой проблемой. Использовал sqllite3 там можно было сделать так

cursor.execute("INSERT OR IGNORE into register values (?,?,?)", (name,time_visit,date_register_visit))

при этом поле date_register_visit уникальное. Хочу теперь сделать тоже самое для mssql. Но не нашел как это можно сделать. Разобрался как просто вставить данные

cursor.execute("INSERT OR IGNORE into register values (?,?,?)", (name,time_visit,date_register_visit))

Суть проблемы в том что я использую sheduler. И каждый раз когда вызываб функцию для вставки значений в бд получаю старые + новые записи.Как надо изменить запрос чтобы данные не дублировались в mssql? Про insert or ignore в mssql ничего не нашел.


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

Автор решения: MaxU

Можно попробовать сделать так:

sql = """
IF NOT EXISTS(SELECT * FROM register WHERE name = ? and time_visit = ? 
 and date_register_visit = ?)
BEGIN
    INSERT INTO register values (?,?,?);
END;
"""
params = (name, time_visit, date_register_visit) * 2
cursor.execute(sql, params)
→ Ссылка