J
John Moore
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()
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()