在Python中向SQLite数据库添加多个列

4 投票
1 回答
2943 浏览
提问于 2025-04-16 05:51

我想在sqlite数据库里创建一个有很多列的表,比如说大约100列。有没有比一个个给每列起名字更好的办法?我现在尝试的是:

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 个回答

6

我想你可以通过字符串格式化来实现,像这样:

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

不过,在sqlite数据库中有100列可不是很常见,你确定你的数据库设计是合理的吗?

撰写回答