【发布时间】:2014-03-05 04:58:52
【问题描述】:
我使用以下代码创建了一个表,它可以工作
def createSQLCreateTableCommand(tableName, columns, foreignKeys):
columns = ["%s"%(c) for c in columns]
foreignKeys = ["FOREIGN KEY (%s) REFERENCES %s(%s)"%(fk[0],fk[1],fk[2]) for fk in foreignKeys]
cmd = """CREATE TABLE IF NOT EXISTS %s (%s)"""%(tableName,','.join(columns+foreignKeys))
return cmd
sqlEx = createSQLCreateTableCommand("class",[
"name text",
"role text"],
[])
conn = sqlite.connect(":memory:")
cursor = conn.cursor()
cursor.execute(sqlEx)
cursor.execute("""SELECT tbl_name FROM sqlite_master WHERE type = 'table'""")
print cursor.fetchall()
然后,我想在表中插入一些值,我编写了以下函数,但它给出了错误消息“表类没有名为'name','role'的列”。我很困惑,因为我刚刚在之前的函数中创建了一个表并且它起作用了。
def createSQLInsertCommand(tableName,columns):
columns = ["%s"%(c) for c in columns]
cmd = """INSERT INTO %s (%s) Values (?)""" %(tableName,columns)
return cmd
sqlValidate = createSQLInsertCommand("class",["name","role"])
cursor.executemany(sqlValidate,[("Brian","Instructor"),("Steven","TA"),("Bob","TA"),("Jody","Student")])
cursor.execute("""SELECT * from class""")
print cursor.fetchall()
谁能帮我修复我的第二个功能?
【问题讨论】:
标签: python sqlite python-2.7