【问题标题】:Can I check if a primary key exists within a SQLite table? [python]我可以检查 SQLite 表中是否存在主键吗? [Python]
【发布时间】:2017-10-18 12:00:07
【问题描述】:

我正在创建一个登录系统并在 python 中使用 SQLite3 数据库。我有一个名为 users 的表,其中包含用户在创建帐户时输入的用户名和密码。用户名是主键。如何检查表中是否已存在用户名,以便提示用户选择其他名称?谢谢。

【问题讨论】:

  • 请添加更多信息。像这样的信息:您使用的是哪个连接器?您是使用任何 ORM 还是通过 Custom-SQL 来实现?
  • @rossc 在 Android 中,您迭代元数据,这会告诉您很多信息您可能会搜索在 Python 中执行相同操作的代码

标签: python sqlite


【解决方案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')

【讨论】:

  • 不太推荐While True子句,一个简单的异常就可能导致死循环。
猜你喜欢
  • 2011-07-25
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
相关资源
最近更新 更多