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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值