【问题标题】:create a table if not exist in sqlite3 python using variable如果在 sqlite3 python 中不存在,则使用变量创建一个表
【发布时间】:2020-11-28 17:16:31
【问题描述】:

我正在尝试在 sqlite3 数据库中为我从 tkinter 中的条目小部件中获得的每个名称创建一个新表 我不知道该怎么做

【问题讨论】:

    标签: python sqlite tkinter pycharm


    【解决方案1】:

    两个问题:

    1. CREATE TABLE 语法没有VALUES 子句。您只需将表名放在那里即可。
    2. 占位符只能用于允许表达式的地方,不能用于替换表名和列名。

    你必须使用字符串格式。

    cursr.execute(f"""CREATE TABLE IF NOT EXISTS {username} (
        site_name TEXT,
        user_id TEXT,
        user_password TEXT)""")
    

    顺便说一句,为每个用户创建一个表可能是一个糟糕的设计。动态数据应该在表数据中,而不是表和列名。为什么不像这样只拥有一个表user_sites

    CREATE TABLE user_sites (
        username TEXT,
        site_name TEXT,
        user_id TEXT,
        user_password TEXT)
    

    【讨论】:

    • 实际上我正在创建密码存储应用程序,您可以在其中保存用户名,创建表,当您使用该名称登录时,它会为您打开该表数据
    • 可以只选择表WHERE username = ?中的所有记录
    • 使用 pyinstaller 将 main.py 转换为 exe 后,我没有在 dist 文件夹中获取 exe 文件
    • 对不起,我对pyinstaller一无所知。
    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2013-05-26
    • 1970-01-01
    相关资源
    最近更新 更多