[英]Renaming tables in SQLite with variable names
我正在嘗試使用 python3 中的 sqlite3 重命名 SQLite 數據庫中的所有表名。
下面的代碼是我到目前為止得到的清理版本,它產生了這個錯誤:
“sqlite3.OperationalError:接近“?”:語法錯誤”
任何幫助是極大的贊賞!
dbpath = "C:/...."
db_list = []
db = sqlite3.connect(dbpath)
c = db.cursor()
c.execute("SELECT name FROM sqlite_master WHERE type='table';")
for i in c.fetchall():
db_list.append(str(i))
for i in range(len(db_list)):
if db_list[i][:4] == "east":
prefix = "A1_"
elif db_list[i][:4] == "west":
prefix = "A2_"
db_name_edit = prefix + db_list[i]
c.execute("ALTER TABLE ? RENAME TO ?", (str(db_list[i]), str(db_name_edit)))
db.commit()
db.close()
表名或列名不允許使用占位符(named 或 qmark 樣式)。 也許使用 python 字符串工具在循環中構建一個查詢字符串,並將其作為參數發送給execute
。 例如:
query_string = "ALTER TABLE " + old_name + " RENAME TO " + new_name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.