views:

83

answers:

2
conn = MySQLdb.connect(host='db1', user='user', passwd='pass', db='db', port=3306)
cursor = conn.cursor()

count = int(sys.argv[1])
x = 0
while x < count:
    x += 1
    cursor.execute("INSERT INTO auth_group(name) VALUES(%s)", (str(x)))
    #if I change %s to 'kkkk', it doesn't work either.

    print str(x) + ' / ' + str(count)
print 'done'

However...if I go into "mysql -uuser -ppass db", it works:

mysql > INSERT INTO auth_group(name) VALUES('kkkkk');

I don't know if this could be a problem...but I was having a replication issue earlier.

I would like to INSERT 99999 rows into the database. But it's empty.

mysql> select * from auth_group;
Empty set (0.33 sec)
+4  A: 

If there's no particular error message (in other words, it seems to work, but the insert doesn't stick), make sure you commit() after the statement:

conn.commit()
Jarret Hardie
conn.autocommit(True)
TIMEX
I don't know what you mean by this comment, but I most strongly suggest NOT turning autocommit on, unless you are absolutely sure, that you want it (hint: you don't). Transactions are there for a reason. Use them.
shylent
+2  A: 

You have to commit (by issuing a conn.commit()), because autocommit is off by default (and rightfully so).

shylent