python的sqlite数据库内数据去重处理
import sqlite3
# 连接到SQLite数据库
# 数据库文件是test.db,如果文件不存在,会自动在当前目录创建:
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
# 创建一个表,如果表已存在,则忽略:
cursor.execute('''CREATE TABLE IF NOT EXISTS records
(id INTEGER PRIMARY KEY, content TEXT UNIQUE)''')
# 插入数据,如果数据已存在(即content字段唯一约束违反),则忽略:
cursor.execute("INSERT OR IGNORE INTO records (content) VALUES (?)", ("example",))
cursor.execute("INSERT OR IGNORE INTO records (content) VALUES (?)", ("example",))
cursor.execute("INSERT OR IGNORE INTO records (content) VALUES (?)", ("another",))
# 查询并打印结果:
for row in cursor.execute("SELECT id, content FROM records ORDER BY id ASC"):
print(row)
# 提交事务并关闭连接:
conn.commit()
conn.close()
这段代码演示了如何使用SQLite的INSERT OR IGNORE
语法来处理插入数据时的去重问题。代码首先创建了一个名为records
的表,其中包含一个content
字段,该字段具有唯一性约束。然后,代码尝试插入两条相同的数据,但由于唯一性约束,第二条会被忽略。最后,代码查询并打印出结果。
评论已关闭