SQLite不接受唯一命令

时间:2017-01-26 06:58:40

标签: python sqlite flash

的Python /烧瓶中:

cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS users (email TEXT NOT NULL UNIQUE, password TEXT)')
print('Table created')

然后用另一种方法

def create_user(email, hashedpw):
    try:
        cur.execute('INSERT INTO users VALUES (?, ?)', (email, hashedpw))
        conn.commit()
        return "works"
    except:
        print(str(sqlite3.Error))
        return None

即使我输入相同的电子邮件10次,它仍会将数据记录在数据库中,并且不会出错。我明确地将它设置为UNIQUE然后为什么它不起作用?

1 个答案:

答案 0 :(得分:1)

您的语法看起来很好,所以只有想到的解释是:

您的数据库中已经有一个名为users的表没有UNIQUE约束,并且由于您使用的是IF NOT EXISTS,因此该表保持不变。