簡體   English   中英

使用變量名重命名 SQLite 中的表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM