我有以下代码片段:
cursor.execute(f"""CREATE TABLE IF NOT EXISTS {str(description.chat.id)}(
date TEXT NOT NULL,
des TEXT NOT NULL,
task_id INTEGER,
PRIMARY KEY("task_id" AUTOINCREMENT),
regularity INTEGER,
prior INTEGER,
ind_reg TEXT
)""")
connect.commit()
这里是description.chat.id
与 Telegram 用户对话的 id(使用了telebot库)。该代码片段运行时,会发生以下错误:
cursor.execute(f"""CREATE TABLE IF NOT EXISTS {str(description.chat.id)}(
sqlite3.OperationalError: near "<тут находится id беседы из цифр>": syntax error
告诉我如何修复这个错误?我看到其他问题建议使用 f 字符串并且它有效。或者是我无法使用变量创建表?
PS 我读到格式化字符串是不安全的,但在这种情况下不需要检查,因为表名是从远程机器人获得的。我还读到最好不要在表名中使用变量,但在这种情况下我想保持原样。
只是表名不应该以数字开头。
PS 一般来说,是否值得为每个用户创建一个表,而不是使用一个用户按标识符划分的表?
PSS 顺便说一下,如果你把数字放在单引号中,那么如果你真的想要的话,这样的表名是可以接受的......