我在sqlite中创建了自己的名为mytable
的表,并希望捕获主机列表的内容并将其写入表中。我可以使用python-requests
获取页面内容,但在到达主机时会发生以下错误:
UNIQUE constraint failed: mytable.hostName
这是我的桌子创建时的问题吗?我正在创建这样的表:
> CREATE TABLE mytable (host CHAR(20) PRIMARY KEY, content TEXT);
我完全删除了我的数据库并再次运行我的代码。但也有同样的错误......
答案 0 :(得分:1)
你有:
CREATE TABLE mytable (host CHAR(20) PRIMARY KEY, content TEXT);
PRIMARY KEY
必须是UNIQUE
。您可能尝试两次插入相同的键,如:
INSERT INTO mytable(host, content)
VALUES ('a', 'some text');
-- OK
INSERT INTO mytable(host, content)
VALUES ('a', 'some text 2');
-- Error: UNIQUE constraint failed: mytable.host
的 SqlFiddleDemo
强>
在插入数据之前,您应该检查它是否已经存在。
答案 1 :(得分:0)
创建表时没有问题。
您的代码存在的问题是您尝试将相同的hostName插入到作为主键的表中。
我建议您在插入表格之前检查您的hostNames,如果它们不是唯一的,请更改您的表格结构。
我希望它会有用。