python实现 mysql 批量导入思路,及部分代码

用户公司需要数据库迁移,迁移量不小.本着一贯能偷懒就偷懒的原则,想着网上应该能有批量迁移的方法,实在没有找到!

前边都是瞎扯,说正题:

1,迁移数据量比较大,

2,数据还算工整(理论上不工整也问题不大,但是select 时需要操作一下,让取出和你要保存的字段一致)

好了代码如下, 取数据:

sql = "select * from 表 limit{},200000".format(n)
cur = conn.cursor()
cur.execute(sql)
data = cur.fetchall()

此时取出来的时元祖套元祖, ((),(),()),保存数据库代码:

data = list(data)
 sql = "insert into  表 VALUES {}".format(data)
cur = conn.cursor()
sql = re.sub('\[\(', '(', sql)
sql = re.sub('\)\]', ')', sql)
            try:
                print('将要保存')
                cur.execute(sql)
                conn.commit()
                print('保存完成')
            except Exception as e:
                print('失败:')
                print(e)

我太懒了,格式不修改了就这样吧,说一下思路,直接把数据放入 "insert into 表,"这个字符串中,格式变成了

"insert into 表 values [(),(),()]"

但是mysql 批量插入是"insert into 表 values (),(),()" 这样的格式,现在只需要将两边的[]去掉就好了,我为什么要将元祖变成列表?因为我内部数据用元祖的话,最后去括号时候麻烦!

用这个方法的话,不用一条一条插入,也不用也不用逐条判断了

VALUES


阅读更多
文章标签: python mysql
想对作者说点什么? 我来说一句

MySQL批量导入文本文件

2011年07月01日 7KB 下载

没有更多推荐了,返回首页

关闭
关闭