MySQLdb UPDATE does nothing

John Moore john at jmsd.co.uk
Thu Sep 15 08:04:15 EDT 2005


Hi,

I normally work with Java but I'm interested in using Python as well, 
particularly for little tasks like doing some massaging of data in a 
MySQL database. Below is my first attempt. I'm sure it's inelegantly 
written, but my main concern is that the UPDATE sql doesn't actually 
work, and I can't understand why. No error is returned, it's just that 
the update does not take place. The SQL itself is fine, though - if I 
instead write the SQL to a file I can use it from the mysql command line 
and it does all the updates just fine. What have I missed?

John

===================================



#!/usr/bin/python

# import MySQL module
import MySQLdb

# connect
db = MySQLdb.connect(host="localhost", user="john", 
passwd="xxx",db="test_db")

# create a cursor
cursor = db.cursor()

# execute SQL statement
cursor.execute("SELECT DISTINCT product_id FROM product_attribute")

# get the resultset as a tuple
result = cursor.fetchall()

# iterate through resultset
for record in result:
    sql="SELECT id FROM product_attribute WHERE product_id = 
"+str(record[0])
    print " "+sql
    cursor.execute(sql)
    result2=cursor.fetchall()
    index=0
    for record2 in result2:       
        sql="UPDATE product_attribute SET index_column = "+str(index)+" 
WHERE id = "+str(record2[0])
        print "   "+sql
        cursor.execute(sql)
        index+=1
       
cursor.close()







More information about the Python-list mailing list