我是 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命令中使用。
添加回答
舉報
0/150
提交
取消