2015-11-19 36 views
0

我有以下代碼來創建表格,如果它尚不存在於數據庫中。Python SQLite3:無法在查詢中創建包含變量的表格

TABLE_NAME = 'Test' 

sql = sqlite3.connect('DATABASE.db') 
cur = sql.cursor() 

cur.execute('CREATE TABLE IF NOT EXISTS ? (id TEXT)', [TABLE_NAME]) 
sql.commit() 

但我不斷收到sqlite3.OperationalError: near "?": syntax error

我有其他的代碼,如cur.execute('INSERT * INTO database VALUES(?,?)', [var1, var2])工作正常。

+2

[表名稱不能被參數](http://stackoverflow.com/a/597198/5323213)。你可以使用Python的字符串格式來做到這一點 –

回答

1

這是正確的,參數不能用於替代數據庫標識符,只能用於值。您必須將指定了表名的SQL命令構建爲一個字符串。

0

下面的代碼創建表

import sqlite3 
sql = sqlite3.connect('DATABASE.db') 
cur = sql.cursor() 
cur.execute('CREATE TABLE IF NOT EXISTS Test (id TEXT)') 
sql.commit() 
+0

我知道如何創建一個表。我的問題是我想創建一個基於變量的表使用?但這顯然是不可能的 – Bijan

+0

我的不好。是的,如上所述 - 參數化查詢適用於DML,但不適用於DDL查詢。 – karastojko