On Mon, Apr 26, 2010 at 7:45 PM, Norman Khine <nor...@khine.net> wrote:
> thanks for the reply.
>
> On Mon, Apr 26, 2010 at 7:18 PM, Serdar Tumgoren <zstumgo...@gmail.com> wrote:
>>
>>> user_tables = ['notification', 'userNotification', 'product_comments',
>>> 'product_donation_paypalTransaction', 'product_donation',
>>> 'productList_recommended', 'productList_user_assoc',
>>> 'profile_values']
>>>
>>> drop_user_tables = """DROP TABLE IF EXISTS db2.%s"""
>>>
>>> try:
>>>    cursor.execute(drop_user_tables, (x for x in user_tables))
>>
>> Norman,
>> It looks like what you're after is the cursor's "executemany" method, which
>> is supported by many common database adapters that comply with DB-API2.0.
>>
>> If you're using sqlite3, there are more details here:
>>
>>     http://docs.python.org/library/sqlite3.html#sqlite3.Cursor.executemany
>>
>> In your code, you seem to be trying to loop over the values in the
>> user_tables list. I haven't tested this, but instead try simply passing the
>> list of user_tables to executemany:
>>
>>     cursor.executemany(drop_user_tables, user_tables)
>
> i am using MySQLdb, to make changes to a database.
>>
>> If the above doesn't work or is not available with your database adapter,
>> how about just using a simple loop?
>>
>> for table in user_tables:
>>     cursor.execute(drop_user_tables, (table,))
>
> both ways, i got this error:
>
> $ py upgrade.py
> Error (1064, "You have an error in your SQL syntax; check the manual
> that corresponds to your MySQL server version for the right syntax to
> use near ''notification'' at line 1")
> aqoon:ookoodoo khinester$ py upgrade.py
> Error (1064, "You have an error in your SQL syntax; check the manual
> that corresponds to your MySQL server version for the right syntax to
> use near ''notification'' at line 1")
>
> but my query, is fine:
>
> drop_user_tables = """DROP TABLE IF EXISTS db2.%s"""

ok this worked,

cursor.execute(drop_user_tables % ",".join(user_tables))

it seems that DROP TABLE (and other DDL statements) don't technically
take SQL parameters.

>
>
>>
>>
>>
>
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to