有没有办法检查丢失的数据并将其加载到 SQL?

Is there a way to check and load missing data to SQL?

我正在尝试找出一种方法来检查我从数据帧加载到 SQL table 中的数据,这样我就可以加载丢失的数据并避免加载重复数据。

这是一个非常粗略的想法。

sql_data = []
data = [(2020-01-01, Monday, 20, 0.1), (2020-01-02, Tuesday, 12, 0.4), (2020-01-01, Wednesday, 26, 0.3)]
          
        
cursor.execute('''Select * FROM Table ''')
for row in cursor.fetchall():
   sql_data.append(row)
    
if data in sql_data:
   pass
else:
   query = '''INSERT INTO Table (Time, Day, Number, Decimal)
                                 VALUES (?, ?, ?, ?)'''
   cursor.execute(query, data)
   conn.commit()

考虑很少使用的 EXCEPT 子句(UNIONINTERSECT 集合运算符系列的一部分),因为 SQL 服务器支持 SELECT 中的标量值,无需FROM数据来源:

query = '''INSERT INTO Table (Time, Day, Number, Decimal)
           SELECT ?, ?, ?, ?
           EXCEPT
           SELECT Time, Day, Number, Decimal
           FROM Table
        '''
cursor.executemany(query, data)
conn.commit()

Online Demo