2017-10-18 15 views
-2

Je crée un système de connexion et utilise une base de données SQLite3 en python. J'ai une table appelée utilisateurs, contenant le nom d'utilisateur et mot de passe qu'un utilisateur entre lors de la création d'un compte. Le nom d'utilisateur est la clé primaire. Comment puis-je vérifier si un nom d'utilisateur existe déjà dans la table, ce qui me permet d'inviter l'utilisateur à choisir un autre nom? Merci.Puis-je vérifier si une clé primaire existe dans une table SQLite? [python]

+0

Ajouter plus d'info pls. Info comme: quel connecteur utilisez-vous? Utilisez-vous ORM ou vous le faites par Custom-SQL? –

+0

@rossc Dans Android vous itérez sur les méta-données cela vous en dira beaucoup Vous pouvez rechercher du code qui fait la même chose en Python – Grendel

Répondre

1
import sqlite3 
con=sqlite3.connect('your_database.db') 
cur=con.cursor() 

#----------*****----------# 
while True: 
     user_nm=input('Username: ') 
     if user_nm and user_nm.strip(): 
      user_nm=(user_nm.strip(),) 
      query='select exists(select 1 from users where username=? collate nocase) limit 1' 
      # 'query' RETURNS 1 IF USERNAME EXISTS OR 0 IF NOT, AS INTEGER(MAYBE). 'collate nocase'= CASE INSENSITIVE, IT'S OPTIONAL 
      check=cur.execute(query,user_nm) 
      if check.fetchone()[0]==0: 
       print('Username avalaible') 
       break 
      else: 
       try_again=input('Username is not available, try again (any key)/stop (s): ').lower() 
       if try_again=='s': 
        break 
     else: 
      print('Input something')