Sql IntegrityError:列名称1不唯一
每次运行此代码时,我都会得到“column name1不是唯一的”。为什么?Sql IntegrityError:列名称1不唯一,sql,Sql,每次运行此代码时,我都会得到“column name1不是唯一的”。为什么? 可能只是因为这是真的,并且您试图违反name1上的唯一约束。CREATE TABLE语句将字段名称1定义为唯一:name1 TEXT unique主键 原因是,您试图在表中插入列“name1”的重复项。 很可能是在某个循环中调用此命令,从FB接收的数据包含多个搜索结果的相同页面名称。 也可能是您没有删除旧数据库(从上一次运行中) 您可以尝试显示或保存要插入表中的日志文件值 正确的解决方案是在循环外创建表。 应该是这样的
可能只是因为这是真的,并且您试图违反name1上的唯一约束。CREATE TABLE语句将字段名称1定义为唯一:
name1 TEXT unique主键
原因是,您试图在表中插入列“name1”的重复项。
很可能是在某个循环中调用此命令,从FB接收的数据包含多个搜索结果的相同页面名称。
也可能是您没有删除旧数据库(从上一次运行中)
您可以尝试显示或保存要插入表中的日志文件值
正确的解决方案是在循环外创建表。
应该是这样的:
解释这意味着他试图为name1插入两行值相同的行(可能为null或空字符串)。即使我删除了唯一的主键并只留下name1文本,它仍然会给出“column name1 is not UNIQUE”。您是否删除了第一次运行它时创建的表?因为它将跳过表的创建,因为它存在并且不会抛出错误。
graph = fb.graph.api(token)
f = graph.get_object(cat = 'single', id = '765898450131958', fields= ['likes'])
strona = f['id']
liczbalajkow = f['likes']
print liczbalajkow
conn = sqlite3.connect('fb_likes2.sqlite')
cur = conn.cursor()
cur.execute('''
CREATE TABLE IF NOT EXISTS Likes (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, name1 TEXT UNIQUE PRIMARY KEY, likes_count INTEGER, date DATES)''');
cur.execute('''INSERT INTO Likes (name1, likes_count, date)
VALUES ( ?, ?, ? )''', ( strona, liczbalajkow, date.today(), ) );
conn.commit()