写了一个数据库操作程序,在测试中发现一个问题。以下是代码:
数据库用的是sqlite.
import sqlite3
def cr(gys,isbn,spmc,jg):
db=sqlite3.connect("C:\\Users\\Administrator\\Desktop\\ph\\ph.db")
cur=db.cursor()
s=f"INSERT INTO {gys} (isbn,spmc,jg) VALUES ({isbn},'{spmc}',{jg})"
cur.execute(s)
db.commit()
db.close()
def cr_row(gys_n,dz):
dz_n=open(dz,"r",encoding='utf-8')
while True:
dz_row=dz_n.readline()
if dz_row =="":
break
else:
try:
r=dz_row.split(",")
cr(gys=gys_n,isbn=r[0],spmc=r[1],jg=r[2])
except:
print("重复商品:%s isbn:%s 价格:%s"%(r[0],r[1],r[2]))
dz_n.close()
gys=input("配送单位:")
wj=input("文件地址:")
cr_row(gys,wj)
print("完成!")
测试的记录:
8181,暗网,18,
8811,诗经,99,
8181,暗网,18,
8821,李,9,
在插入第三和第四行记录的时候触发了错误处理。第三行是重复的记录,触发错误处理是正常的,数据表设置了唯一性约束。但第四行记录不重复啊,为什么也触发错误处理了呢?