如何在sqlite3中添加列?
我知道这个问题很简单,但我就是搞不定!我对插入、更新或选择命令没有问题。假设我有一个字典,我想用字典里的列名来填充一个表格,但我在添加列的那一行代码上出了问题,能告诉我哪里错了吗?
##create
con = sqlite3.connect('linksauthor.db')
c = con.cursor()
c.execute('''create table linksauthor (links text)''')
con.commit()
c.close()
##populate author columns
allauthors={'joe':1,'bla':2,'mo':3}
con = sqlite3.connect('linksauthor.db')
c = con.cursor()
for author in allauthors:
print author
print type(author)
c.execute("alter table linksauthor add column '%s' 'float'")%author ##what is wrong here?
con.commit()
c.close()
4 个回答
0
这里还有一个选择:
c.execute(
f"""
ALTER TABLE linksauthor
ADD COLUMN {author} 'float'
""")
3
你在使用字符串来表示列名和类型名。虽然Sqlite对这些比较宽容,但其实你应该用双引号来标记这些标识符。
17
你的括号放错地方了。你可能是想这样写:
c.execute("alter table linksauthor add column '%s' 'float'" % author)