2010-10-21 94 views
3

我想在sqlite數據庫中創建一個包含多列(比如約100列)的表。有沒有比單獨命名每個列更好的解決方案?我嘗試以下操作:將多列添加到python的sqlite數據庫中

conn = sqlite3.connect('trialDB') 
cur = conn.cursor() 

listOfVars = ("added0",) 
for i in range(1,100): 
    newVar = ("added" + str(i),) 
    listOfVars = listOfVars + newVar 
print listOfVars 

for i in listOfVars: 
    cur.execute('''ALTER TABLE testTable ADD COLUMN ? TEXT''',(i,)) 

conn.commit()  
cur.close() 
conn.close() 

,但我得到了以下錯誤:

OperationalError: near "?": syntax error 

可有人請建議我該怎麼辦呢?謝謝!

+1

我不認爲佔位符適用於列名或表名。 – SilentGhost 2010-10-21 13:48:47

+0

只是爲了確認SilentGhost - 佔位符_definitely_不適用於列名或表名。 – Gretchen 2010-10-21 14:06:42

+0

謝謝,SilentGhost和馬修 – Curious2learn 2010-10-21 14:31:10

回答

4

我想你可以做到這一點通過字符串格式化,像這樣:

for i in listOfVars: 
    cur.execute('''ALTER TABLE testTable ADD COLUMN %s TEXT''' % i) 

但在一個SQLite數據庫有100列肯定是不常見的,你肯定有一個適當的數據庫設計的?

+0

我正在運行一些模擬,每個模擬輸出一個約1500行和200列的數據矩陣。如果我將數據輸出到.csv文件,它大約是3mb。我想知道如果使用SQLite數據庫將使整個事情有效。感謝您的回答。 – Curious2learn 2010-10-21 14:13:59