亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

問號“?” 替換 SQL 中的 CREATE TABLE、DROP TABLE - 限制

問號“?” 替換 SQL 中的 CREATE TABLE、DROP TABLE - 限制

慕村225694 2021-08-11 20:00:39
我是 SQL 新手,正在研究如何編寫干凈/高效的 SQL 命令。我正在使用 Python 中的 sqlite3 包,并且我正在嘗試使用問號替換與 executemany() 函數相結合來編寫高效的命令。我見過這樣的例子:with sql.connect("db_file.db") as conn:    cur = conn.cursor()    purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),                 ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),                 ('2006-04-06', 'SELL', 'IBM', 500, 53.00),                ]    cur.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)    conn.close()我想知道是否可以使用類似的語法來創建/刪除表:with sql.connect("db_file.db") as conn:    cur = conn.cursor()    tables = ["MajorInfo",                "CourseInfo",                "StudentInfo",                "StudentGrades"]    cur.executemany("DROP TABLE IF EXISTS (?);", tables)    conn.close()上面的代碼拋出以下異常:Traceback (most recent call last):  File "sql_test.py", line 4, in <module>    sql1.student_db()  File "/acmeshare/jastern/byu_vol2/SQL1/sql1.py", line 57, in student_db    cur.executemany("DROP TABLE IF EXISTS (?);", tables)  sqlite3.OperationalError: near "(": syntax error我在 SQL 中嘗試的可能嗎?有沒有一種傳統的方法來做我正在嘗試的事情?謝謝!更新:為了驗證問題不在于executemany()函數,我嘗試了:table = "MajorInfo"cur.execute("DROP TABLE IF EXISTS ?;", table)conn.close()并得到了一個sqlite3.OperationalError: near "?": syntax error. 我在想那個?替換可能僅限于在INSERT INTO和SELECT命令中使用。
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

SQLite 的語句DROP TABLE不接受括號中的參數。此外,它不接受多個參數,因此不幸的是,您想要的很可能是不可能的。

DROP TABLE語句定義為:

http://img1.sycdn.imooc.com//6113bc020001095d07050042.jpg

查看完整回答
反對 回復 2021-08-11
  • 1 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號