Warm tip: This article is reproduced from serverfault.com, please click

sqlite-如果使用变量在sqlite3 python中不存在,则创建一个表

(sqlite - create a table if not exist in sqlite3 python using variable)

发布于 2020-11-28 17:16:31

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

Questioner
AADITYA JAIN
Viewed
0
Barmar 2020-11-29 01:19:34

两个问题:

  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)