如何在多次运行代码时在不添加另一个相同行的情况下创建 SQLlite 行?



这是我正在使用的代码:

def setbase():
conn=sqlite3.connect("gamebase.db")
cur=conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS scores (box TEXT, score INTEGER)")
cur.execute("INSERT INTO 'scores' IF NOT EXISTS VALUES (box, score) ('a', 2)")
cur.execute("INSERT INTO 'scores' (box, score) VALUES ('b', 0)")
cur.execute("INSERT INTO 'scores' (box, score) VALUES ('c', 0)")
cur.execute("INSERT INTO 'scores' (box, score) VALUES ('d', 0)")
conn.commit()
conn.close()

当我运行此代码时,一切都很好,但是当我多次运行它时,该行会继续添加和添加。 有什么办法可以防止这种情况发生吗?

您需要确定是什么使您的行唯一。为了避免在后续执行中出现重复,可以检查是否已经存在具有相同标识的行。例如,如果"box"值是唯一的,则首先按框选择,只有在不返回结果时才插入。

另一种方法是SQLite支持的称为upsert的概念。

最新更新