sqlite3.IntegrityError:唯一约束失败:错误,即使我输入的值是唯一的?

时间:2019-05-09 09:20:59

标签: python sqlite pycharm

我有一个这样的数据库。

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 ***我创建了一个新表并删除了唯一约束。我现在没有任何错误,但是记录两次进入了表。当存在唯一性约束时,问题出在哪里。我不知道为什么要插入两个记录。

0 个答案:

没有答案