Mysql 批量删除数据表

Mysql 批量删除数据表



[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/env python
#coding: utf-8
# Author : ox0spy
# Blog : ox0spy.blogspot.com
# Email : [email]ossteerer@gmail.com[/email]

import MySQLdb

def droptables(tablename, hostname='localhost', username='test', password='test', dbname='test'):
    db = MySQLdb.connect(host = hostname,
                        user = username,
                        passwd = password,
                        db = dbname)
    cursor = db.cursor()
    while True:
        cursor.execute('show tables like "%s%%"' % tablename)
        tables = cursor.fetchall()
        if len(tables) == 0:
            break
        for x in tables:
            try:
                cursor.execute('drop table %s' %x)
                db.commit()
            except:
                #print x
                continue
    cursor.close()
    db.close()

if __name__ == '__main__':
    tablename = 'droptest_'
    droptables(tablename)

remainTable = [] 有嘛用?

建议db链接时候host和user之类也当参数。
原来show tables也可以这样fetch阿
谢谢 xiaoyu9805119
代码已修改。。。

上次碰到要批量删除同一前缀的MySQL表,所以写了这个程序
今天网上看到有人需要,就发到cu了。。。