zoukankan      html  css  js  c++  java
  • 使用Mysql存储过程批量插入数据

    需求:在不改变现有数据的情况下,插入N条数据;

    实例表:

    mysql> desc student;
    +------------+-------------+------+-----+---------+-------+
    | Field      | Type        | Null | Key | Default | Extra |
    +------------+-------------+------+-----+---------+-------+
    | id         | int(10)     | NO   | PRI | NULL    |       |
    | name       | varchar(20) | NO   |     | NULL    |       |
    | sex        | varchar(4)  | YES  |     | NULL    |       |
    | birth      | year(4)     | YES  |     | NULL    |       |
    | department | varchar(20) | YES  |     | NULL    |       |
    | address    | varchar(50) | YES  |     | NULL    |       |
    +------------+-------------+------+-----+---------+-------+

    创建语句:

    DROP TABLE IF EXISTS `student`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `student` (
      `id` int(10) NOT NULL,
      `name` varchar(20) NOT NULL,
      `sex` varchar(4) DEFAULT NULL,
      `birth` year(4) DEFAULT NULL,
      `department` varchar(20) DEFAULT NULL,
      `address` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `student`
    --
    
    LOCK TABLES `student` WRITE;
    /*!40000 ALTER TABLE `student` DISABLE KEYS */;
    INSERT INTO `student` VALUES (901,'张老大','',1985,'计算机系','北京市海淀区'),(902,'张老二','',1986,'中文系','北京市昌平区'),(903,'张三','',1990,'中文系','湖南省永州市'),(904,'李四','',1990,'英语系','辽宁省阜新市'),(905,'王五','',1991,'英语系','福建省厦门市'),(906,'王六','',1988,'计算机系','湖南省衡阳市');
    /*!40000 ALTER TABLE `student` ENABLE KEYS */;
    UNLOCK TABLES;

    创建存储过程:

    DROP PROCEDURE IF EXISTS proc_i_loop;  
    DELIMITER ;;
    CREATE PROCEDURE proc_i_loop(IN loop_times INT)  
    BEGIN  
    DECLARE var INT DEFAULT 0;
      
    set var = (select count(*) from student);  
    select var;  
    set loop_times=loop_times+var;
    
    WHILE var<loop_times DO  
    SET var=var+1;  
    INSERT INTO student(id,name,sex,birth,department,address) VALUES (var,CONCAT('test',var),'',1999,'法律系',NULL);  
    END WHILE;  
    END  
    ;;
    DELIMITER ;

    执行插入:

    call proc_i_loop(100000);
  • 相关阅读:
    今天的雪糕格外好吃!
    定了!对于本周四(7.16日)抽奖活动取消简要说明,新抽奖活动暂定下周三(7.22日)...
    你喜欢什么样的课堂?
    无题
    属于你们的“礼仪小课堂”
    红歌合唱之团结就是力量
    《此生未完成》痛句摘录(一)
    端午前夕的班级小游戏
    排序>插入排序 小强斋
    排序>交换排序 小强斋
  • 原文地址:https://www.cnblogs.com/seulki/p/7390571.html
Copyright © 2011-2022 走看看