避免将相同数据的多个条目输入数据库表(Python)

避免将相同数据的多个条目输入数据库表(Python),python,database,sqlite,sql-insert,Python,Database,Sqlite,Sql Insert,我正在将Python(一个数据框架)中的信息写入SQLite数据库中的不同表中。我目前正在测试数据帧中的“单元格”与数据库中某个表的名称是否匹配,如果匹配,则将相关行中的信息从数据帧发送到该表。见以下代码: for ii in range(0,row_count): df_area= pon_transpose.index[ii] export_date= pon_transpose.iloc[ii,0] export_morning= p

我正在将Python(一个数据框架)中的信息写入SQLite数据库中的不同表中。我目前正在测试数据帧中的“单元格”与数据库中某个表的名称是否匹配,如果匹配,则将相关行中的信息从数据帧发送到该表。见以下代码:

    for ii in range(0,row_count):
        df_area= pon_transpose.index[ii]
        export_date= pon_transpose.iloc[ii,0]
        export_morning= pon_transpose.iloc[ii,1]
        export_day= pon_transpose.iloc[ii,2]
        export_eve= pon_transpose.iloc[ii,3]
        export_night= pon_transpose.iloc[ii,4]
        cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
        available_tables=[item[0] for item in cur.fetchall()]        # list of strings of all the table names in the database
        list_len= len(available_tables)
        for iii in range (0, list_len):
            if (re.match('\w*'+df_area, available_tables[iii])):
                relevant_table=available_tables[iii]
                cur.execute("INSERT INTO " + relevant_table + " VALUES (?,?,?,?,?)", (export_date, export_morning, export_day, export_eve, export_night))
                con.commit()
            iii=iii+1
        ii=ii+1
以上只是我代码的一部分,位于另一个循环中。这导致Python中的信息被多次读取到数据库表中,这是我想要避免的。为了避免这种情况,我尝试将上述代码中的最后第四行更改为:

cur.execute("INSERT OR IGNORE INTO " + relevant_table + " VALUES (?,?,?,?,?)", (export_date, export_morning, export_day, export_eve, export_night))
以及:

然而,到目前为止,这是不成功的。我有一种感觉,我应该能够用“插入或替换”来实现这一点,但现在这种修改并没有起到任何作用。是否有人有任何想法或能发现任何错误?我对SQLite语言特别不熟悉,所以也许我就是找不到一个简单的语法修复程序来解决我的问题(不过我已经研究过了)

让我知道我的代码/附加信息中的任何特定输出是否有帮助


提前感谢。

有关信息,可通过在CREATE TABLE语句中指定主键解决此问题,如下所述:有关信息,可通过在CREATE TABLE语句中指定主键解决此问题,如下所述:
cur.execute("INSERT OR REPLACE INTO " + relevant_table + " VALUES (?,?,?,?,?)", (export_date, export_morning, export_day, export_eve, export_night))