python连接mysql循环插入千万条数据脚本

之前都是在mysql的存储过程中插入数据,毕竟mysql语法函数有限,很多都有限制。突然想到学了python正好可以练练手。

首先需要安装pymysql模块包(模块包安装请自行百度)

 1 #encoding:utf-8
 2 import pymysql
 3 import time
 4 import random
 5 #连接mysql
 6 db = pymysql.connect(‘14.29.249.74‘,‘kx_admin‘,‘Yjh7yC0L7L1G1k6qXKwb‘,‘ilock‘)
 7 #获取mysql操作光标
 8 cursor = db.cursor()
 9 #初始化变量
10 count = 0
11 #设置sql语句循环次数
12 while count <= 100:
13     count += 1
14     #定义mysql字段的范围随机数变量
15     num = random.randint(0,2)
16     memo_num = random.randint(100,111)
17     city_list = [‘长沙‘,‘湘潭‘,‘株洲‘,‘衡阳‘]
18     a = random.choice(city_list)
19     #生成mysql语句插入语句
20     sql = "insert  into iodn_city(city_code,city_name,memo)values(%s,‘%s‘,%s)" %(num,a,memo_num)
21     #执行sql语句
22     try:
23         cursor.execute(sql)
24         db.commit()
25     #错误回滚
26     except:
27         db.rollback()
28 #关闭mysql
29 db.close()

  

原文地址:https://www.cnblogs.com/hy546880109/p/11979443.html

时间: 2024-08-01 19:51:40

python连接mysql循环插入千万条数据脚本的相关文章

用一句mysql语句插入多条数据

假如有一个数据表A: id name title addtime 如果需要插入n条数据 : $time= time(); $data = array(    array(      'name'=>'name1','title'=>'title1','addtime'=>$time;    ),    array(      'name'=>'name2','title'=>'title2','addtime'=>$time;    ),    array(      

mysql批量插入500条数据

表格结构如下 需求name和password字段,生成如下格式: 总共批量生成500个. 解决思路: 可以用mysql 存储过程 如果linux环境下可以用shell 我们先测试第一种,用存储过程. DELIMITER ;;      ##定义;;为结束符 CREATE PROCEDURE test_insert()    ##创建存储过程  test_insert()是名字 BEGIN  DECLARE y int DEFAULT 1 ;        ##定义y 为整数 默认起始值为1 WH

Mysql快速插入千万条测试数据

通过存储过程来添加数据: drop procedure if exists t1; create procedure t1() begin DECLARE i INT DEFAULT 0; DECLARE j INT DEFAULT 0; WHILE (i <= 15000000) DO INSERT INTO `test` (`code`, `name`) VALUES ('sdfasdfas','aaa'); SET i = i + 1; if mod(i,1000)=0 then comm

mysql数据库删除千万条数据的操作方案,直接delete会很久

在线上有一张表很大,积累了几年的消费数据,现在需要把这张表几年前的数据给清掉,数据量将近1亿,直接按年份将其中的数据delete,你会发现删了几小时都没有返回.这是因为每执行一次delete,需要同时将该行的删除操作记录作为事务记录在日志中保存以便进行回滚. ? ?最终采用的方案是: ? ? (1)抽取需要保留的数据到备份表中, ? ? (2)truncate旧表 ? ? (3)备份表中的数据再插入truncate表 我的执行实操如下: CREATE TABLE charging_record_

mysql 一次性插入上万条数据测试专用

无聊期间 记录下 mysql 一次性插入上万条数据 测试的时候可以用 首先 创建一个表 t3 create table t3(id int)ENGINE = MyISAM; \d //    表示吧mysql 的结束标志改成 //   默认情况下  mysql 的结束标志是 ; 这样 创建一个procedure  方法 最后end  //   表示结束 最后用 \d ;   吧mysql原生的结束符号; 换回来 我这里就不贴出来了. 使用命令 call p3; (呼叫p3 搬砖了 :-) ) 最

MySQL循环插入语法

单个循环插入多条数据 DELIMITER ;; CREATE PROCEDURE test_insert() BEGIN DECLARE y int DEFAULT 1; WHILE y<20 DO insert into school_sp_mj(school_id,mojor_id,status) values(1,y,1); SET y=y+1; END WHILE ; commit; END;; //可以先到这里检测语法 CALL test_insert();//执行以上sql 双重循环

jdbc:mysql和oracle插入一条数据返回主键

package org.sin.common.dao; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import or

PHP MySQL 插入多条数据

PHP MySQL 插入多条数据 使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句. 以下实例向 "MyGuests" 表添加了三条新的记录: 实例 (MySQLi - 面向对象) <?php$servername = "localhost";$username = "username";$password = "password";$d

mysql一次插入多条数据

mysql一次插入多条数据: INSERT INTO hk_test(username, passwd) VALUES ('qmf2', 'qmf2'),('qmf3', 'qmf3'),('qmf4', 'qmf4'),('qmf5', 'qmf5') GO