我正在使用Python和MySQLdb处理一个简单的MySQL数据库,我创建了一些函数来操作数据库而无需在主脚本中键入SQL查询。
其中一个函数应该在我的表中添加一个新列,并立即用给定python列表中的值填充它。虽然它没有:实际创建了新列,但是里面的所有值都保持为NULL ...你知道我在哪里犯了错误吗?以下是主要脚本及其使用的子功能。
password = "*********"
name = "database9000"
conn = connect_database(name,password)
add_column("MYTABLE", "MYCOLUMN", mylist, conn) *# where "mylist" is a 9000+ elements list*
disconnect_database(conn)
def connect_database(dbname, password) :
conn = mdb.connect(host = "localhost", user = "root", passwd = password, db = dbname)
return conn
def disconnect_database(conn) :
conn.close()
add_column(tablename, columnname, mylist, conn) :
cs = conn.cursor()
cs.execute("ALTER TABLE %s ADD %s DOUBLE" % (tablename, columnname))
for n in range(len(mylist)) :
cs.execute("UPDATE %s SET %s = %f WHERE id = %d" % (tablename, columnname, float(mylist[n]), n+1))
由于
答案 0 :(得分:0)
您没有提交更改。
请注意,在MySQL中,架构更改不会在事务中发生,但数据更新会发生。因此,您需要致电conn.commit()
。