2010-10-21 39 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

相关问题