вставка неповторяющихся значений в 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)