我有一个这样的数据库。
CREATE TABLE "work_order" ( "id" INTEGER, "ServiceTitle" TEXT UNIQUE,
"Link" TEXT UNIQUE, "Status" TEXT, PRIMARY KEY("id") );
当我尝试输入一些值时,我得到一个错误。
"sqlite3.IntegrityError: UNIQUE constraint failed: work_order.Link"
然后程序终止。
Process finished with exit code 1
即使我在“链接”列中输入的值是唯一的。
conn = sqlite3.connect('WO.db', timeout=10)
c = conn.cursor()
c.execute("insert into work_order (ServiceTitle, Link, Status) values
(?,?,?)", ('oo', 'll', 'rr'))
conn.commit()
conn.close()
新记录仍然完全按照我的意愿插入数据库。我只是在pycharm上收到此错误。
我也尝试插入主键ID。它不是自动递增的,因此只要它是唯一的,我就可以手动输入。
conn = sqlite3.connect('WO.db', timeout=10)
c = conn.cursor()
c.execute("insert into work_order (id, ServiceTitle, Link, Status) values
(?,?,?,?)", (7, 'kkkk', 'eeeee', 'qqqqq'))
conn.commit()
conn.close()
再次,我在pycharm中收到错误,但这次有所不同。尽管完全符合我的要求,但记录仍会再次插入数据库中。然后该过程再次终止。
sqlite3.IntegrityError: UNIQUE constraint failed: work_order.id
Process finished with exit code 1.
关于我为什么会出现此错误的任何建议,即使我在这些列中输入的所有值都是数据库中不存在的唯一值?
UPDATE ***我创建了一个新表并删除了唯一约束。我现在没有任何错误,但是记录两次进入了表。当存在唯一性约束时,问题出在哪里。我不知道为什么要插入两个记录。