python sqlite3 DELETE FROM表行(如果存在)

时间:2017-04-07 14:04:59

标签: python sqlite

我有一个将行插入表中的python脚本。我希望它删除重复行或如果行存在则忽略INSERT。到目前为止我尝试了什么:

#delete duplicate entries
c.execute('''DELETE FROM server WHERE sites NOT IN
            (SELECT MIN(sites) sites FROM server GROUP BY sites)''')

表“server”是单列“sites”。这是一个网站表。它没有抛出任何错误。它只是不删除重复项。

1 个答案:

答案 0 :(得分:1)

sites本身进行比较无济于事,因为重复项在此列中具有相同的值。

您必须使用其他一些独特的列。在这种情况下,您可以使用rowid

DELETE FROM server
WHERE rowid NOT IN (SELECT min(rowid)
                    FROM server
                    GROUP BY sites);