的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
然后为什么它不起作用?
答案 0 :(得分:1)
您的语法看起来很好,所以只有想到的解释是:
您的数据库中已经有一个名为users
的表没有UNIQUE
约束,并且由于您使用的是IF NOT EXISTS
,因此该表保持不变。