【发布时间】:2021-07-23 21:23:22
【问题描述】:
每次运行这段代码,我插入表中的数据都是重复的,那么如何防止重复呢?
我试图寻找解决方案但徒劳无功。我尝试在 INSERT INTO 中使用“if not exists”作为“INSERTO INTO if not exists users”,但数据重复仍然存在并且不起作用。
我发现一个错误提示:sqlite3.OperationalError: near "not": syntax error
这是代码:
import sqlite3
db = sqlite3.connect('data.db')
cr = db.cursor()
cr.execute("CREATE TABLE if not exists users (user_id INTEGER, name TEXT, age
INTEGER, phone INTEGER)")
cr.execute("INSERT INTO if not exists users (user_id, name, age, phone)
VALUES(1, 'Ahmed', 33, 01001234567)")
cr.execute("SELECT * FROM users")
user = cr.fetchall()
print(user)
db.commit()
【问题讨论】:
-
以文本格式粘贴代码而不是屏幕截图
-
每次运行此代码时,都会再次插入同一行。你有什么问题?
-
这是代码:
import sqlite3 db = sqlite3.connect('data.db') cr = db.cursor() # Create DB table of User cr.execute("CREATE TABLE if not exists users (user_id INTEGER, name TEXT, age INTEGER, phone INTEGER)") cr.execute("INSERT INTO if not exists users (user_id, name, age, phone) VALUES(1, 'Ahmed', 33, 01001234567)") cr.execute("SELECT * FROM users") user = cr.fetchall() print(user) db.commit() -
if not exists什么?user_id?name?两个都?编辑您的问题并澄清。
标签: python sql sqlite sql-insert not-exists