python中的数据库问题,出现了一个unique constraint failed的错误

import sqlite3

#con=sqlite3.connect('D:\\form1.db')

#cur=con.cursor()

#cur.execute('CREATE TABLE students(name TEXT PRIMARY KEY,number INTEGER,class1 TEXT)')

import tkinter as tk

window=tk.Tk()

window.title('data')

window.geometry('500x300')

name1=tk.StringVar()

name=tk.Entry(textvariable=name1)

name.pack()

number1=tk.StringVar()

number=tk.Entry(textvariable=number1)

number.pack()

class_1=tk.StringVar()

class_=tk.Entry(textvariable=class_1)

class_.pack()

def put_in():

    a=name.get()

    b=number.get()

    c=class_.get()

    con=sqlite3.connect('D:\\form1.db')

    cur=conn.cursor()

    info=[(a,b,c)]

    cur.executemany("INSERT INTO students(name,number,class1) VALUES(?,?,?)",info)

    con.commit()

    con.close()

bt1=tk.Button(text='提交',command=put_in)

bt1.pack()

window.mainloop()

 

求求大佬们帮忙解决

你的sql语句出错了,你将你的sql语言在数据库里面执行一下,看看是不是报错了。

如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢

代码没有问题,运行正常,可能在建数据库表时里面重名的表格。在建表时,使用:

cur.execute('drop table if exists students')

cur.execute('create table students(name text prinmary key,number integer,class1 text)')

然后将两行注释掉,再尝试运行上图代码。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m

我的问题和你差不多,你参考;我的情况是用executemany进行多行输入,执行不下去,报这个错误。
问题的解决过程是:我用了 try语句 将这个语句试着执行,之后发现至能录入一行记录,且值不对。
是因为我录入的值取值太长,sqlite的interger类型不支持,系统自动缩短,最后缩短后的数据第二个和第一个就一样了,所以就重复了。最后我采用了最大的19位长度 可以输入了