2017-01-26 3 views
-1

Python/Flask:SQLite nicht akzeptieren eindeutigen Befehl

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

Dann in einem anderen Verfahren

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 

Auch wenn ich hier den gleichen E-Mail-10-mal noch die Daten in der Datenbank erfasst und doesn‘ t einen Fehler geben. Ich stelle es klar auf UNIQUE dann warum funktioniert es nicht?

+0

Haben Sie versucht, es als Primärschlüssel zu markieren? –

+0

@ EmreTürkiş, schafft es immer noch den Benutzer – garoo

Antwort

1

Ihre Syntax sieht gut so einzige Erklärung, die den Sinn kommt, ist:

Sie haben bereits eine Tabelle users in Ihrer Datenbank mit dem Namen, die nicht die UNIQUE Einschränkung hat und da Sie IF NOT EXISTS verwenden, dass Tabelle bleibt es ist.

Verwandte Themen